Add registering workstation warning regarding working locations provided by Jennifer...
authorRobert Soulliere <rsoulliere@libdog.mohawkcollege.ca>
Mon, 28 Feb 2011 16:25:23 +0000 (11:25 -0500)
committerRobert Soulliere <rsoulliere@libdog.mohawkcollege.ca>
Mon, 28 Feb 2011 16:25:23 +0000 (11:25 -0500)
1.6/admin/staffclientinstallation.xml

index d22408e..fc3ad5b 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter xml:id="staffclientinstallation" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink">
-       <info>
-               <title>Installation of Evergreen Staff Client Software</title>
-               <abstract>
-                       <para>This section describes installation of the Evergreen Staff Client software.</para>
-               </abstract>
-       </info>
-       <section xml:id="staffclientinstallation-installing-staffclient">
-               <title>Installing the Staff Client</title>
-               <indexterm>
-                       <primary>staff client</primary>
-                       <secondary>installing</secondary>
-               </indexterm>
-               <section xml:id="staffclientinstallation-installing-prebuilt">
-                       <title>Installing a Pre-Built Staff Client</title>
-                       <para>A pre-built Staff Client is available for <systemitem class="osname">Windows</systemitem>,
-                       <systemitem class="osname">Mac</systemitem> or Linux systems. Installing the Staff Client in
-                       each of these environments is described in the following sections.</para>
-                       <section xml:id="staffclientinstallation-installing-windows">
-                               <title>Installing on <systemitem class="osname">Windows</systemitem></title>
-                               <indexterm>
-                                       <primary>staff client</primary>
-                                       <secondary>installing</secondary>
-                                       <tertiary>Windows</tertiary>
-                               </indexterm>
-                               <para>In this section we describe the process of installing the Staff Client on the
-                               <systemitem class="osname">Microsoft Windows</systemitem> operating system.</para>
-                               <para>Visit the downloads section of the Evergreen website at
-                               <ulink url="http://www.evergreen-ils.org/downloads.php">http://www.evergreen-ils.org/downloads.php</ulink>
-                               and find the standard <systemitem class="osname">Microsoft Windows</systemitem> Installer
-                               that contains the current version of the Staff Client. Download the Installer, then run
-                               it. A screen that looks similar to this should appear:</para>
-                               <mediaobject>
-                                       <alt>
-                                               <phrase>Running the Staff Client installer</phrase>
-                                       </alt>
-                                       <imageobject>
-                                               <imagedata fileref="../media/staffclientinstallation-staffclient-1.png" format="PNG" scalefit="1" width="60%"/>
-                                       </imageobject>
-                               </mediaobject>
-                               <para>Click <guibutton>'Next'</guibutton> to continue through the guided install
-                               process. The Install Wizard will ask you to agree to the end-user license, ask you where
-                               to install the software, ask about where to place icons, and then will automatically
-                               install the software on your workstation.</para>
-                               <para>When you run the Staff Client for the first time, a screen similar to this should
-                               appear:</para>
-                               <mediaobject>
-                                       <alt>
-                                               <phrase>Running the Staff Client for the first time</phrase>
-                                       </alt>
-                                       <imageobject>
-                                               <imagedata fileref="../media/staffclientinstallation-staffclient-2.png" format="PNG" scalefit="1" width="60%"/>
-                                       </imageobject>
-                               </mediaobject>
-                               <para>First, add the name of your Evergreen server to the field 
-                               <emphasis role="bold">Hostname</emphasis> in the <emphasis role="bold">Server</emphasis>
-                               section. For example, the PINES demo system is 
-                               <ulink url="http://demo.gapines.org">http://demo.gapines.org</ulink>. 
-                               After adding the server name, click <guibutton>'Re-Test Server'</guibutton>.</para>
-                               <para>Because this is the initial run of the Staff Client, you will see a warning in the
-                               upper-right saying: <emphasis role="bold">Not yet configured for the specified
-                               server</emphasis>. The first thing you must do to the Staff Client on every workstation
-                               is to assign it a workstation name. This is covered in 
-                               <xref linkend="staffclientinstallation-workstationnames"/>.</para>
-                       </section>
-                       <section xml:id="staffclientinstallation-installing-macos">
-                               <title>Installing on <systemitem class="osname">Mac OS</systemitem></title>
-                               <indexterm>
-                                       <primary>staff client</primary>
-                                       <secondary>installing</secondary>
-                                       <tertiary>Mac OS</tertiary>
-                               </indexterm>
-                               <para>This section describes <systemitem class="osname">Mac OS</systemitem>
-                               packages and related versions of <application>XULrunner</application> that can
-                               be used to run the Staff Client in a <systemitem class="osname">Mac OS</systemitem>
-                               environment.</para>
-                               <simplesect>
-                                       <title>Evergreen Version 1.2.3.0</title>
-                                       <orderedlist>
-                                               <listitem>
-                                                       <para>A <systemitem class="osname">Mac OS</systemitem> package that
-                                                       contains an early version of the Staff Client (version 1.2.3.0) for use
-                                                       with <application>XULrunner</application> is available. You can find
-                                                       current releases of <application>XULrunner</application> here:
-                                                       <ulink url="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases">
-                                                       http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases</ulink> .
-                                                       Download and install the latest version. You can find further information 
-                                                       about <application>XULrunner</application> here: 
-                                                       <ulink url="https://developer.mozilla.org/en/xulrunner">
-                                                       https://developer.mozilla.org/en/xulrunner</ulink>.</para>
-                                                       <para>Note that later versions of <application>XULrunner</application>
-                                                       (e.g., version 1.9.2.13) have replaced version 1.8.0.4, which has known
-                                                       security holes and is not recommended for applications that deal with
-                                                       public web content.</para>
-                                               </listitem>
-                                               <listitem>
-                                                       <para>A <systemitem class="osname">Mac OS</systemitem>
-                                                       Installation package for Staff Client version 1.2.3.0 is
-                                                       available from Evergreen Indiana. Download and install it from
-                                                       here:
-                                                       <ulink url="http://evergreen.lib.in.us/opac/extras/files/evergreen_osx_staff_client_1_2_3.zip">
-                                                       evergreen_osx_staff_client_1_2_3.zip</ulink> .
-                                                       </para>
-                                               </listitem>
-                                               <listitem>
-                                                       <para>To upgrade to a more recent version of the Staff Client, you can
-                                                       copy the <filename class="directory">build</filename> directory from a
-                                                       working <systemitem class="osname">Windows</systemitem> installation of
-                                                       the desired version of the Staff Client to your 
-                                                       <systemitem class="osname">Mac</systemitem>. 
-                                                       The required files may be located in a directory like this on the
-                                                       <systemitem class="osname">Windows</systemitem> machine: 
-                                                       <filename class="directory">C:\Program Files\Evergreen Staff Client\build</filename>.
-                                                       Copy these files to the <filename class="directory">Resources</filename>
-                                                       folder within the <package>Open-ILS</package> package in your 
-                                                       <filename class="directory">Applications</filename> directory on the Mac,
-                                                       overwriting files with the same names.</para>
-                                               </listitem>
-                                               <listitem>Drag the application's icon to your toolbar for easier
-                                               access.</listitem>
-                                       </orderedlist>
-                                       <para>When you run the Staff Client installer, a screen will appear that looks
-                                       similar to this:</para>
-                                       <mediaobject>
-                                               <alt>
-                                                       <phrase>Running the Staff Client installer for 
-                                                       <systemitem class="osname">Mac OS</systemitem></phrase>
-                                               </alt>
-                                               <imageobject>
-                                                       <imagedata fileref="../media/staffclientinstallation-staffclient-3.png" format="PNG" scalefit="1" width="20%"/>
-                                               </imageobject>
-                                       </mediaobject>
-                                       <para>Click <guibutton>'Continue'</guibutton>, accept the license, then finish the
-                                       installation. The application will be located at the destination you selected
-                                       during installation. You will then be able to drag the application into your
-                                       toolbar for easier access.</para>
-                                       <mediaobject>
-                                               <alt>
-                                                       <phrase>Finishing the installation</phrase>
-                                               </alt>
-                                               <imageobject>
-                                                       <imagedata fileref="../media/staffclientinstallation-staffclient-4.png" format="PNG" scalefit="1" width="20%"/>
-                                               </imageobject>
-                                       </mediaobject>
-                               </simplesect>
-                               <simplesect>
-                                       <title>Running directly using <application>XULrunner</application></title>
-                                       <indexterm>
-                                               <primary>staff client</primary>
-                                               <secondary>XULRunner</secondary>
-                                       </indexterm>
-                                       <para>You must install an appropriate version of <application>XULrunner</application> 
-                                       to match the Evergreen version. See the following table for the recommended version of
-                                       <application>XULrunner</application>:</para>
-                                       <table xml:id="staffclientinstallation-table-1">
-                                               <?dbfo keep-together="always" ?>
-                                               <title>Evergreen / <application>XULrunner</application> Dependencies</title>
-                                               <tgroup align="left" cols="2" colsep="1" rowsep="1">
-                                                       <colspec colname="evergreen_version" colnum="1" colwidth="1.0*"/>
-                                                       <colspec colname="xulrunner_version" colnum="2" colwidth="1.0*"/>
-                                                       <thead>
-                                                               <row>
-                                                                       <entry>Evergreen Version</entry>
-                                                                       <entry>XULRunner Version</entry>
-                                                               </row>
-                                                       </thead>
-                                                       <tbody>
-                                                               <row>
-                                                                       <entry>Evergreen 1.6.x.x</entry>
-                                                                       <entry>XULrunner 1.9.x.x</entry>
-                                                               </row>
-                                                               <row>
-                                                                       <entry>Evergreen 1.4.x.x</entry>
-                                                                       <entry>XULrunner 1.8.0.4 or XULrunner 1.8.0.3</entry>
-                                                               </row>
-                                                               <row>
-                                                                       <entry>Evergreen 1.2.x.x</entry>
-                                                                       <entry>XULrunner 1.8.0.4 or XULrunner 1.8.0.3</entry>
-                                                               </row>
-                                                       </tbody>
-                                               </tgroup>
-                                       </table>
-                                       <note>If you have issues removing previously installed
-                                       <application>XULrunner</application> versions see 
-                                       <xref linkend="staffclientinstallation-remove-xulrunner"/>
-                                       for further information.</note>
-                                       <para>The Staff Client data from the directory 
-                                       <filename class="directory">./staff_client/build</filename> must be placed
-                                       somewhere on the machine (e.g. 
-                                       <filename class="directory">~/Desktop/Evergreen_Staff_Client</filename>).</para>
-                                       <para>Remember to call <application>XULrunner</application> with the full path to the
-                                       binary, followed by the install command and the path to the client data:</para>
-<screen>
-       <userinput>
-       /Library/Frameworks/XUL.framework/xulrunner-bin --install-app ~/Desktop/Evergreen_Staff_Client</userinput>
-</screen>
-                                       <para>The command should exit quietly and will create the folder 
-                                       <filename class="directory">/Applications/OpenILS</filename>,
-                                       containing a launcher named <application>open_ils_staff_client</application>.</para>
-                               </simplesect>
-                               <simplesect xml:id="staffclientinstallation-remove-xulrunner">
-                                       <title>(OPTIONAL) Removing previously installed XULRunner versions</title>
-                                       <indexterm>
-                                               <primary>XULRunner</primary>
-                                               <secondary>removing previous versions</secondary>
-                                       </indexterm>
-                                       <para>If you already have a newer version of
-                                       <application>XULrunner</application> installed, per the release notes, 
-                                       you will need to remove the entire directory 
-                                       <filename class="directory">/Library/Frameworks/XUL.framework</filename> 
-                                       before downgrading.</para>
-                                       <para>In addition, you may also need to remove the previous file
-                                       <filename>/Library/Receipts/xulrunner-ver-mak.pkg</filename> .</para>
-                                       <para>If file <filename>/Library/Receipts/xulrunner-ver-mak.pkg</filename> does
-                                       not exist (possibly in newer <systemitem class="osname">Mac OS</systemitem>
-                                       releases), you need to flush the file <filename>receiptdb</filename>.</para>
-                                       <note>If you install a newer version of <application>XULrunner</application>
-                                       over a previous (older) install, the older install is not removed but the
-                                       symlinks are changed to the newer one.</note>
-                               </simplesect>
-                               <simplesect>
-                                       <title>(OPTIONAL) Flush Receiptdb file:</title>
-                                       <para>First, get the package identifier, then purge/forget the build that was
-                                       initially installed:</para>
-<screen>
-       <userinput>
-       sudo pkgutil --pkgs > /tmp/pkgs.txt
-       sudo pkgutil --forget org.mozilla.xulrunner</userinput>
-</screen>
-                                       <note>It may not be necessary to edit the file
-                                       <filename>/Library/Receipts/InstallHistory.plist</filename> after deleting the
-                                       folder <filename class="directory">XUL.framework</filename>. See
-                                       <ulink url="http://lists.apple.com/archives/Installer-dev/2009/Jul/msg00008.html">
-                                       http://lists.apple.com/archives/Installer-dev/2009/Jul/msg00008.html</ulink> 
-                                       for more information.</note>
-                               </simplesect>
-                               <simplesect>
-                                       <title>Creating an APP file: Staff Client and <application>XULrunner</application> Bundled</title>
-                                       <para>An APP file is basically a folder. Start with a folder stucture like this:</para>
-<screen>
-       <prompt>
-       Evergreen.app
-       __Contents
-       ____Frameworks
-       ____Resources
-       ____MacOS</prompt>
-</screen>
-                                       <para>Create an APP folder structure with the following commands:</para>
-<screen>
-       <userinput>
-       mkdir -p Evergreen.app/Contents/Frameworks
-       mkdir -p Evergreen.app/Contents/Resources
-       mkdir -p Evergreen.app/Contents/MacOS</userinput>
-</screen>
-                                       <orderedlist>
-                                               <listitem>
-                                                       <para>Create a new file in the folder
-                                                       <filename class="directory">Evergreen.app/Contents/Info.plist</filename>
-                                                       containing the following data (adjust for your version of
-                                                       Evergreen):</para>
-                                                       <programlisting language="xml"><![CDATA[
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>CFBundleExecutable</key>
-       <string>xulrunner</string>
-       <key>CFBundleGetInfoString</key>
-       <string>OpenILS open_ils_staff_client rel_1_6_1_6</string>
-       <key>CFBundleInfoDictionaryVersion</key>
-       <string>6.0</string>
-       <key>CFBundleName</key>
-       <string>Evergreen Staff Client</string>
-       <key>CFBundlePackageType</key>
-       <string>APPL</string>
-       <key>CFBundleShortVersionString</key>
-       <string>rel_1_6_1_6</string>
-       <key>CFBundleVersion</key>
-       <string>rel_1_6_1_6.rel_1_6_1_6</string>
-       <key>NSAppleScriptEnabled</key>
-       <true/>
-       <key>CFBundleTypeIconFile</key>
-       <string>Evergreen.icns</string>
-</dict>
-</plist>
-]]></programlisting>
-                                               </listitem>
-                                               <listitem>Download and install an appropriate 
-                                               <systemitem class="osname">Mac OS</systemitem> package of 
-                                               <application>XULrunner</application> from the Mozilla website
-                                               <ulink url="https://developer.mozilla.org/en/xulrunner">
-                                               https://developer.mozilla.org/en/xulrunner</ulink> (see 
-                                               <xref linkend="staffclientinstallation-table-1"/> for recommendations).</listitem>
-                                               <listitem>
-                                                       <para>Make a copy of the folder
-                                                       <filename class="directory">/Library/Frameworks/XUL.Framework</filename>
-                                                       inside your APP file. It should look something like this:</para>
-<screen>
-       <prompt>
-       Evergreen.app/
-       __Contents/
-       ____Frameworks/
-       ______XUL.Framework/
-       ______Versions/
-       ________Current -> 1.9.1.3 (symlink)
-       ________1.9.1.3/
-       ______XUL -> Versions/Current/XUL
-       ______libxpcom.dylib -> Versions/Current/libxpcom.dylib
-       ______xulrunner-bin -> Versions/Current/xulrunner-bin</prompt>
-</screen>
-                                               </listitem>
-                                               <listitem>Copy
-                                               <filename>XUL.Framework/Versions/Current/xulrunner</filename> into the
-                                               folder <filename class="directory">Evergreen.app/MacOS</filename>
-                                               (do not symlink; copy the file).</listitem>
-                                               <listitem>
-                                                       <para>Make <filename>Evergreen.app/Resources</filename> the root
-                                                       of your Evergreen application files like this:</para>
-<screen>
-       <prompt>
-       Evergreen.app/
-       __Contents/
-       ____Resources/
-       ______BUILD_ID
-       ______application.ini
-       ______chrome/
-       ______components/
-       ______etc.</prompt>
-</screen>
-                                               </listitem>
-                                               <listitem>Put a <systemitem class="osname">Mac</systemitem> 
-                                               format icon file named <filename>Evergreen.icns</filename> in 
-                                               <filename class="resources">Resources</filename>.</listitem>
-                                       </orderedlist>
-                               </simplesect>
-                       </section>
-                       <section xml:id="staffclientinstallation-installing-linux">
-                               <title>Installing on Linux</title>
-                               <simplesect>
-                                       <title>Quick Upgrade of the Staff Client</title>
-                                       <para>A Linux Staff Client is automatically built on the server as part of the
-                                       normal <emphasis>make install</emphasis> process for Evergreen server-side
-                                       software. To upgrade the Staff Client on a remote Linux workstation with a new
-                                       version, just copy the directory tree containing the Staff Client from your
-                                       server to the remote workstation.</para>
-                                       <para>Execute the following commands, replacing <literal>USER</literal>,
-                                       <literal>WORKSTATION</literal>, and <literal>SOME_PATH</literal> with
-                                       appropriate values:</para>
-<screen>
-       <userinput>
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       scp -r ./build USER@WORKSTATION:/SOME_PATH/</userinput>
-</screen>
-                                       <para>You should test the newly copied Staff Client on the remote workstation.
-                                       Log into the workstation and execute the following command:</para>
-<screen>
-       <userinput>
-       xulrunner /SOME_PATH/build/application.ini</userinput>
-</screen>
-                               </simplesect>
-                               <simplesect>
-                                       <title>Building the Staff Client on the Server</title>
-                                       <indexterm>
-                                               <primary>staff client</primary>
-                                               <secondary>building on the server</secondary>
-                                       </indexterm>
-                                       <para>A Linux Staff Client is automatically built on the server as part of the
-                                       normal <emphasis>make install</emphasis> process for Evergreen server-side
-                                       software. See <xref linkend="serversideinstallation-compile"/> for details of
-                                       the build process.</para>
-                                       <para>In order to install a compatible Staff Client on another Linux system, you
-                                       can copy the appropriate files from the Staff Client build directory on your
-                                       server to the new Linux system. You could manually build the Staff Client on the
-                                       new system, but you must ensure that the <envar>BUILD_ID</envar> you chose on
-                                       the server matches the <envar>BUILD_ID</envar> for each Staff Client you use on
-                                       other systems.</para>
-                                       <para>If you wish to use a pre-packaged <systemitem class="osname">Windows</systemitem>
-                                       version on some systems, you may want to choose the <envar>BUILD_ID</envar> on
-                                       both server and other versions to match that of the 
-                                       <systemitem class="osname">Windows</systemitem> Staff Client. To determine which
-                                       <envar>BUILD_ID</envar> was used for existing Staff Client installations,
-                                       execute each Staff Client and click the <guibutton>'About this Client'</guibutton>
-                                       button.</para>
-                                       <para>If you are allowed to make changes on the Evergreen server, another option
-                                       is to create a symbolic link. In order for a copy of the Staff Client and server
-                                       to work together, the <envar>BUILD_ID</envar> must match the name of the
-                                       directory containing the server components of the Staff Client, or the name of a
-                                       symbolic link to that directory. As the 
-                                       <systemitem class="username">root</systemitem> user, make the changes as follows:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       cd /openils/var/web/xul
-       ln -s SERVER_BUILD_ID/ CLIENT_BUILD_ID</userinput>
-</screen>
-                               </simplesect>
-                               <simplesect>
-                                       <title>Building the Staff Client on a Client Machine</title>
-                                       <para>This section is directed toward end-users who wish to use Linux rather than
-                                       <systemitem class="osname">Windows</systemitem> for client machines, but have limited
-                                       Linux experience. You can build the Staff Client on a Linux system without installing the
-                                       Evergreen Server component. This is a relatively simple process compared to server
-                                       installation, but does require some command-line work. The following instructions are 
-                                       for building Staff Client version 1.2.1.4 on 
-                                       <systemitem class="osname">Kubuntu 7.10</systemitem>; modify them as needed for
-                                       other distributions (the instructions should work as-is for
-                                       <systemitem class="osname">Ubuntu</systemitem> or 
-                                       <systemitem class="osname">Ubuntu</systemitem> derivatives).</para>
-                                       <procedure>
-                                               <step>
-                                                       <title>Prerequisites</title>
-                                                       <para>Both <application>subversion</application> and
-                                                       <application>XULrunner</application> are required to build the Staff
-                                                       Client. As the <systemitem class="username">root</systemitem> user, 
-                                                       use <command>apt-get</command> to install packages for
-                                                       <application>subversion</application> and
-                                                       <application>XULrunner</application>. You can also use
-                                                       <command>synaptic</command>, the graphical user interface for
-                                                       <command>apt-get</command>. For <application>subversion</application>,
-                                                       select the latest version; for <application>XULrunner</application>,
-                                                       select version <emphasis>1.8.1.4-2ubuntu5</emphasis>.</para>
-<screen>
-       <userinput>
-       # as the root user:
-       sudo apt-get install subversion
-       sudo apt-get install xulrunner</userinput>
-</screen>
-                                               </step>
-                                               <step>
-                                                       <title>Download the Source Code</title>
-                                                       <itemizedlist>
-                                                               <listitem>
-                                                                       <para>Determine which version is needed</para>
-                                                                       <para>For most end-users, a specific version is required
-                                                                       to communicate properly with the Evergreen server. Check
-                                                                       with your system administrator, IT person, or HelpDesk to
-                                                                       determine which Staff Client versions are
-                                                                       supported.</para>
-                                                                       <para>Next, you need to determine which
-                                                                       <emphasis>tag</emphasis> to use when downloading the
-                                                                       source code. Tags are markers in the source code to create
-                                                                       a snapshot of the code as it existed at a certain time;
-                                                                       tags usually point to tested and stable code, or at least
-                                                                       a community-recognized release version.</para>
-                                                                       <para>To determine which tag to use, browse to 
-                                                                       <ulink url="http://svn.open-ils.org/trac/ILS/browser">
-                                                                       http://svn.open-ils.org/trac/ILS/browser</ulink>. 
-                                                                       Look in the <guilabel>Visit</guilabel> drop-down box; see
-                                                                       the list of <guilabel>Branches</guilabel> and, further
-                                                                       down, a list of <guilabel>Tags</guilabel>. You may have 
-                                                                       to do some guesswork, but it is fairly straightforward to
-                                                                       determine which tag to use. If the server is version
-                                                                       1.6.1.6, you will want to use the tag that looks most
-                                                                       appropriate. For example, as you look through the tag
-                                                                       list, notice the tag named 'rel_1_6_1_6'. This is the tag
-                                                                       you need; make a note of it for the next step.</para>
-                                                               </listitem>
-                                                               <listitem>
-                                                                       <para>Download the Code</para>
-                                                                       <para>As the
-                                                                       <systemitem class="username">opensrf</systemitem> 
-                                                                       user, open a terminal (command-line prompt) and navigate
-                                                                       to the directory in which you wish to download the Staff
-                                                                       Client. Use the following commands to download the proper
-                                                                       version of the source code by tag name:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /DOWNLOAD/DIRECTORY
-       svn co rel_1_6_1_6/</userinput>
-</screen>
-                                                                       <para>Remember to change "rel_1_6_1_6" to the appropriate
-                                                                       tag for your installation.</para>
-                                                               </listitem>
-                                                       </itemizedlist>
-                                               </step>
-                                               <step>
-                                                       <title>Build the Staff Client</title>
-                                                       <para>In the following example, navigate to the directory in
-                                                       which the source code was downloaded, then navigate to the
-                                                       proper subdirectory and run the "make" utility to actually build
-                                                       the Staff Client. Remember to check with your system
-                                                       administrator about which Staff Client <envar>BUILD_ID</envar>
-                                                       to use. The server checks the Staff Client
-                                                       <envar>BUILD_ID</envar> against itself to determine whether or
-                                                       not a connecting client is supported. For instance, for the
-                                                       PINES installation (version 1.6.1.6) the supported
-                                                       <envar>BUILD_ID</envar> is "rel_1_6_1_6". Modify the following
-                                                       commands accordingly.</para>
-                                                       <para>As the <systemitem class="username">opensrf</systemitem>
-                                                       user, run the following commands to build the Staff Client:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       wget http://evergreen-ils.org/downloads/Evergreen-ILS-1.6.1.6.tar.gz
-       tar xfz Evergreen-ILS-1.6.1.6.tar.gz
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6
-       ./configure --prefix=/openils --sysconfdir=/openils/conf
-       cd ./Open-ILS/xul/staff_client/
-       make STAFF_CLIENT_BUILD_ID='rel_1_6_1_6' install</userinput>
-</screen>
-                                               </step>
-                                               <step>
-                                                       <title>Run the Staff Client</title>
-                                                       <para>As the <systemitem class="username">opensrf</systemitem> 
-                                                       user, navigate to the <filename class="directory">build/</filename>
-                                                       subdirectory and run the following command:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client/build
-       xulrunner application.ini</userinput>
-</screen>
-                                               </step>
-                                               <step>
-                                                       <title>(OPTIONAL) Clean Up / Create Shortcuts</title>
-                                                       <para>The source code download included many files that are
-                                                       needed to build the Staff Client but are not necessary to run
-                                                       it. You may wish to remove them to save space, or to create a
-                                                       clean <literal>staging</literal> directory containing the
-                                                       finished Staff Client that can then be copied to other
-                                                       machines. To do this, execute the following commands (remember
-                                                       to replace <emphasis>DOWNLOAD_DIRECTORY</emphasis> and
-                                                       <emphasis>STAGING_DIRECTORY</emphasis> with the appropriate
-                                                       paths):</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       mkdir ~/STAGING_DIRECTORY
-       cd ~/DOWNLOAD_DIRECTORY/Open-ILS/xul/
-       cp -r staff_client ~/STAGING_DIRECTORY</userinput>
-</screen>
-                                                       <para>Test the Staff Client to verify that all necessary files
-                                                       were copied to the staging directory:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd ~/STAGING_DIRECTORY/staff_client/build
-       xulrunner application.ini</userinput>
-</screen>
-                                                       <para>If there were no problems, then finish the cleanup by
-                                                       removing the original download directory as shown:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       rm -r -f ~/DOWNLOAD_DIRECTORY</userinput>
-</screen>
-                                                       <para>Finally, the command:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       xulrunner ~/STAGING_DIRECTORY/staff_client/build/application.ini</userinput>
-</screen>
-                                                       <para>will now run the Staff Client. You may wish to create a
-                                                       shortcut for the Staff Client. To do so, use the previous
-                                                       command as the target for the shortcut:
-                                                       <menuchoice>
-                                                               <guimenu>Desktop</guimenu>
-                                                               <guimenuitem>StartMenu</guimenuitem>
-                                                               <guimenuitem>K-Menu</guimenuitem>
-                                                       </menuchoice></para>
-                                               </step>
-                                       </procedure>
-                               </simplesect>
-                               <simplesect>
-                                       <title>Using Wine to Install on Linux</title>
-                                       <indexterm>
-                                               <primary>staff client</primary>
-                                               <secondary>using wine to install on Linux</secondary>
-                                       </indexterm>
-                                       <para>The Linux application <application>Wine</application> is another
-                                       alternative if you wish to install the packaged 
-                                       <systemitem class="osname">Windows</systemitem> versions rather than manually
-                                       building the Staff Client. <application>Wine</application> is a Linux
-                                       application that allows users to directly run
-                                       <systemitem class="osname">Windows</systemitem> executables, and is a simple 
-                                       way for casual Linux users to use the Staff Client. You can find more information 
-                                       about <application>Wine</application> at
-                                       <ulink url="http://www.winehq.org/site/docs/wineusr-guide/getting-wine">
-                                       http://www.winehq.org/site/docs/wineusr-guide/getting-wine</ulink>.</para>
-                                       <para>As the <systemitem class="username">root</systemitem> user, use
-                                       <command>apt-get</command> to install the package for <application>Wine</application>. 
-                                       You can also use <command>synaptic</command>, the graphical user interface.</para>
-                                       <orderedlist>
-                                               <listitem>
-                                                       <para>Install wine:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       sudo apt-get install wine</userinput>
-</screen>
-                                               </listitem>
-                                               <listitem>
-                                                       <para>Visit the downloads section of the Evergreen website at
-                                                       <ulink url="http://www.evergreen-ils.org/downloads.php">
-                                                       http://www.evergreen-ils.org/downloads.php</ulink> and find the
-                                                       <systemitem class="osname">Microsoft Windows</systemitem> Installer
-                                                       that contains the desired version of the Staff Client. Download
-                                                       the installer and place it in a temporary directory.</para>
-                                               </listitem>
-                                               <listitem>
-                                                       <para>As the <systemitem class="username">opensrf</systemitem>
-                                                       user, navigate to the temporary directory where you downloaded 
-                                                       the <systemitem class="osname">Windows</systemitem> installer 
-                                                       file, then execute it with the <application>wine</application>
-                                                       application (remember to replace <emphasis>VERSION</emphasis> with
-                                                       the release number of the Staff Client you downloaded):</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /TEMP_DIRECTORY
-       wine evergreen-setup-rel_VERSION.exe</userinput>
-</screen>
-                                                       <para>If this step fails, you may need to configure
-                                                       <application>Wine</application> first to properly emulate 
-                                                       <systemitem class="osname">Windows XP</systemitem>. To do so,
-                                                       type <command>winecfg</command> from the command line; in the
-                                                       <literal>Applications</literal> tab of the window that pops up,
-                                                       select <literal>Default Settings</literal> and choose
-                                                       <literal>Windows XP</literal> from the drop-down menu, then
-                                                       click <guibutton>'Apply'</guibutton>.</para>
-                                               </listitem>
-                                               <listitem>
-                                                       <para>Launch the Staff Client</para>
-                                                       <para>A new entry for the Staff Client should now appear
-                                                       somewhere in the <literal>All Applications</literal> menu of
-                                                       your Linux desktop. You may also find a new desktop shortcut for
-                                                       the Staff Client. To launch the Staff Client, visit the
-                                                       <literal>All Applications</literal> menu on your desktop and
-                                                       find the section similar to:</para>
-                                                       <para>
-                                                               <menuchoice>
-                                                                       <guimenu>Wine</guimenu>
-                                                                       <guimenuitem>Program Files</guimenuitem>
-                                                                       <guimenuitem>Evergreen Staff Client</guimenuitem>
-                                                                       <guimenuitem>Evergreen Staff Client</guimenuitem>
-                                                               </menuchoice>,
-                                                       </para>
-                                                       <para>or else launch the Staff Client from the new desktop shortcut.</para>
-                                               </listitem>
-                                       </orderedlist>
-                               </simplesect>
-                       </section>
-               </section>
-               <section>
-                       <title>Building the Staff Client</title>
-                       <indexterm>
-                               <primary>staff client</primary>
-                               <secondary>building</secondary>
-                       </indexterm>
-                       <para>You can also manually build the Staff Client by using the <command>make</command>
-                       utility in the Staff Client source directory (e.g., the directory 
-                       <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client</filename>
-                       for the current Evergreen version). There are a number of possible options to manually
-                       build special versions of the Staff Client on a Linux system. Following is a list of
-                       variables that you can pass to <command>make</command> to influence the manual build
-                       process:</para>
-                       <simplesect>
-                               <title>
-                                       Build Variable <envar>STAFF_CLIENT_BUILD_ID</envar></title>
-                               <para>During the normal <emphasis>make install</emphasis> Evergreen server-side
-                               software build process, the variable defaults to an automatically generated
-                               date/time string, but you can also override the value of <envar>BUILD_ID</envar>.</para>
-                               <para>You could use the following commands during the normal install process:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6
-       make STAFF_CLIENT_BUILD_ID=1_6_1_6 install</userinput>
-</screen>
-                               <para>You can also manually build the Staff Client in the Staff Client
-                               source directory with a different <envar>BUILD_ID</envar>.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user,
-                               execute the following commands to build the Staff Client (remember to replace
-                               <emphasis>NEW_VERSION</emphasis> with an appropriate value):</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make STAFF_CLIENT_BUILD_ID=NEW_VERSION  build</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect>
-                               <title>
-                                       Build Variable <envar>STAFF_CLIENT_VERSION</envar></title>
-                               <para>During the normal <emphasis>make install</emphasis> Evergreen server-side
-                               software build process, the variable is pulled automatically from a README file
-                               in the Evergreen source root. The variable defaults to
-                               <emphasis>0trunk.revision</emphasis>, where the value of "revision" is
-                               automatically generated. You can override the value of <envar>VERSION</envar>
-                               similarly to the <envar>BUILD_ID</envar>.</para>
-                               <para>You could use the following commands during the normal install process:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6
-       make STAFF_CLIENT_VERSION=0mytest.200 install</userinput>
-</screen>
-                               <para>You can also manually build the Staff Client in the Staff Client
-                               source directory with a different <envar>VERSION</envar>.</para>
-                               <para>If you plan to make extensions update automatically, the 
-                               <envar>VERSION</envar> needs to conform to the format recommended in 
-                               <ulink url="https://developer.mozilla.org/en/Toolkit_version_format">
-                               Toolkit Version Format</ulink> and newer versions need to be "higher" than older
-                               versions.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user,
-                               execute the following commands to build the Staff Client:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make STAFF_CLIENT_VERSION=0mytest.200  build</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect>
-                               <title>
-                                       Build Variable <envar>STAFF_CLIENT_STAMP_ID</envar></title>
-                               <para>During the normal <emphasis>make install</emphasis> Evergreen
-                               server-side software build process, the variable is generated from
-                               <envar>STAFF_CLIENT_VERSION</envar>. You may want to have multiple versions
-                               of the Staff Client with different stamps, possibly for different uses or
-                               client-side customizations. You can override the value of
-                               <envar>STAMP_ID</envar> similarly to the <envar>BUILD_ID</envar>.</para>
-                               <para>You could use the following commands during the normal install process:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6
-       make STAFF_CLIENT_STAMP_ID=my_test_stamp install</userinput>
-</screen>
-                               <para>You can also manually build the Staff Client in the Staff Client
-                               source directory with a different <envar>STAMP_ID</envar>.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user,
-                               execute the following commands to build the Staff Client:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make STAFF_CLIENT_STAMP_ID=my_test_stamp  build</userinput>
-</screen>
-                       </simplesect>
-               </section>
-               <section>
-                       <title>Advanced Build Options</title>
-                       <indexterm>
-                               <primary>staff client</primary>
-                               <secondary>building</secondary>
-                               <tertiary>advanced build options</tertiary>
-                       </indexterm>
-                       <para>In addition to the basic options listed above, there are a number of advanced
-                       options for building the Staff Client. Most are target names for the
-                       <command>make</command> utility and require that you build the Staff Client from the
-                       <literal>staff_client</literal> directory. See the following table for a list of
-                       possible <command>make</command> target keywords:</para>
-                       <table>
-                               <title>Keywords For Advanced Build Options</title>
-                               <?dbfo keep-together="always" ?>
-                               <tgroup align="left" cols="2" colsep="1" rowsep="1">
-                                       <colspec colname="keyword" colnum="1" colwidth="1.0*"/>
-                                       <colspec colname="description" colnum="2" colwidth="3.0*"/>
-                                       <thead>
-                                               <row>
-                                                       <entry>Keyword</entry>
-                                                       <entry>Description</entry>
-                                               </row>
-                                       </thead>
-                                       <tbody>
-                                               <row>
-                                                       <entry>clients</entry>
-                                                       <entry>Runs "make win-client", "make linux-client", and "make
-                                                       generic-client" individually</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>client_dir</entry>
-                                                       <entry>Builds a client directory from the build directory, without
-                                                       doing a rebuild. The same as "copy everything but
-                                                       server/".</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>client_app</entry>
-                                                       <entry>Prerequisite "client_dir"; removes "install.rdf" from
-                                                       client directory so an APP bundle can't be installed as an
-                                                       extension</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>client_ext</entry>
-                                                       <entry>Prerequisite "client_dir"; remove "application.ini",
-                                                       "autoupdate.js", "standalone_xul_app.js" from client directory so
-                                                       an extension won't break Firefox</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>extension</entry>
-                                                       <entry>Prerequisite "client_ext"; rewritten to use "client_ext"</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>generic-client</entry>
-                                                       <entry>Prerequisite "client_app"; makes an XPI file suitable for
-                                                       use with "xulrunner --install-app""</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>win-xulrunner</entry>
-                                                       <entry>Prerequisite "client_app"; adds Windows xulrunner to client build</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>linux-xulrunner</entry>
-                                                       <entry>Prerequisite "client_app"; adds Linux xulrunner to client build</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>win-client</entry>
-                                                       <entry>Prerequisite "win-xulrunner"; builds "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")</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>linux-client</entry>
-                                                       <entry>Prerequisite "linux_xulrunner"; builds a "tar.bz2" bundle
-                                                       of the Linux client</entry>
-                                               </row>
-                                               <row>
-                                                       <entry>[generic-|win-|linux-|extension-]updates[-client]</entry>
-                                                       <entry>Calls external/make_updates.sh to build full and partial
-                                                       updates generic/win/linux/extension prefix limit to that
-                                                       distribution; Adding <option>-client</option> builds clients and
-                                                       copies them to a subdirectory of the 
-                                                       <filename class="directory">updates</filename> directory as well;
-                                                       <option>extension-updates-client</option> doesn't exist.</entry>
-                                               </row>
-                                       </tbody>
-                               </tgroup>
-                       </table>
-                       <para>Following are descriptions of other special build options:</para>
-                       <simplesect>
-                               <title>Developer Build</title>
-                               <para>You can create a so-called <emphasis>developer build</emphasis>
-                               of the Staff Client by substituting <option>devbuild</option> for
-                               <option>build</option> when running <command>make</command> from the
-                               <literal>staff_client</literal> directory. The build will contain an
-                               extra configuration file that enables some developer options.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, run
-                               the following commands from the Staff Client source directory:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make devbuild</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect>
-                               <title>Compressed Javascript</title>
-                               <para>You can execute the Google <systemitem class="resource">Closure Compiler</systemitem>
-                               utility to automatically review and compress Javascript code after the build
-                               process completes, by substituting <option>compress-javascript</option> for
-                               <option>build</option> when running <command>make</command>.
-                               For more information on the Google Closure Compiler, see 
-                               <ulink url="http://code.google.com/closure/compiler/">
-                               http://code.google.com/closure/compiler</ulink>.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, run
-                               the following commands from the Staff Client source directory:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make compress-javascript</userinput>
-</screen>
-                               <para>You can also combine Javascript review and compression, and also perform a
-                               <emphasis>developer build</emphasis>.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, run 
-                               the following <command>make</command> command from the Staff Client source directory
-                               (the order of options is important):</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make  devbuild  compress-javascript</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect xml:id="staffclientinstallation-autoupdatehost">
-                               <title>Automatic Update Host</title>
-                               <para>You can override the host used to check for automatic Staff Client updates
-                               by specifying the <option>AUTOUPDATE_HOST</option> option.</para>
-                               <para>You could use the following commands during the normal install process:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6
-       make AUTOUPDATE_HOST=localhost install</userinput>
-</screen>
-                               <para>You can manually build the Staff Client in the Staff Client
-                               source directory and set <option>AUTOUPDATE_HOST</option> to enable automatic
-                               update checking.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user,
-                               execute the following commands to build the Staff Client:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make AUTOUPDATE_HOST=localhost build</userinput>
-</screen>
-                               <para>For more information on Automatic Updates, see
-                               <xref linkend="staffclientinstallation-autoupdate"/>.</para>
-                       </simplesect>
-               </section>
-               <section>
-                       <title>Installing and Activating a Manually Built Staff Client</title>
-                       <para>The Staff Client is automatically built, installed and activated as part of the
-                       normal <command>make<option>install</option></command> process for Evergreen
-                       server-side software. However, if you manually build the Staff Client from the
-                       <literal>staff_client</literal> directory, then you need to take additional steps to
-                       properly install and activate it. You also have the option of installing the Staff
-                       Client on the same machine it was built on, or on a different machine.</para>
-                       <para>Assuming you have already built the Staff Client, and that your installation is
-                       in the directory <filename class="directory">/openils/var/web/xul</filename>, as the
-                       <systemitem class="username">opensrf</systemitem> user execute the following
-                       commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       mkdir -p "/openils/var/web/xul/$(cat build/BUILD_ID)"
-       cp -R build/server "/openils/var/web/xul/$(cat build/BUILD_ID)"</userinput>
-</screen>
-               </section>
-               <section>
-                       <title>Packaging the Staff Client</title>
-                       <para>Once you have built the Staff Client, you can create several forms of special client
-                       packages by using a modified <command>make</command> command in the <literal>staff_client</literal>
-                       directory.</para>
-                       <simplesect>
-                               <title>Packaging a Generic Client</title>
-                               <para>This build creates a Staff Client packaged as an XPI file suitable for use with
-                               the <option>--install-app</option> parameter of <application>XULrunner</application>.
-                               It requires that you already have the <systemitem>zip</systemitem> utility
-                               installed on your system.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, execute
-                               the following commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make generic-client</userinput>
-</screen>
-                               <para>The output file <filename>evergreen_staff_client.xpi</filename> will be created.</para>
-                       </simplesect>
-                       <simplesect>
-                               <title>Packaging a <systemitem class="osname">Windows</systemitem> Client</title>
-                               <para>This build creates a Staff Client packaged as a 
-                               <systemitem class="osname">Windows</systemitem> executable. It requires that
-                               you already have the <application>unzip</application> utility installed on
-                               your system. It also requires that you install 
-                               <ulink url="http://nsis.sourceforge.net/">NSIS (Nullsoft Scriptable Install System)</ulink>,
-                               a professional open source utility package used to create 
-                               <systemitem class="osname">Windows</systemitem> installers (the
-                               <application>"makensis"</application> utility is installed as part of the
-                               <application>"nsis"</application> package). You should use Version 2.45 or
-                               later.</para>
-                               <para>If you wish for the Staff Client to have a link icon/tray icon by
-                               default, you may wish to provide a pre-modified
-                               <application>xulrunner-stub.exe</application>. Place it in the Staff Client
-                               source directory and <command>make</command> will automatically use it instead
-                               of the one that comes with the downloaded <application>XULrunner</application>
-                               release. The version of <application>xulrunner-stub.exe</application> need not
-                               match exactly.</para>
-                               <para>You can also use a tool such as 
-                               <ulink url="http://www.angusj.com/resourcehacker/">Resource Hacker</ulink>
-                               to embed icons. <application>Resource Hacker</application> is an open-source
-                               utility used to modify resources within 32-bit
-                               <systemitem class="osname">Windows</systemitem> executables. 
-                               Some useful icon ID strings include the following:</para>
-                               <table>
-                                       <?dbfo keep-together="always" ?>
-                                       <title>Icon IDs for Packaging a Windows Client</title>
-                                       <tgroup align="left" cols="2" colsep="1" rowsep="1">
-                                               <colspec colname="keyword" colnum="1" colwidth="1.0*"/>
-                                               <colspec colname="icon" colnum="2" colwidth="1.0*"/>
-                                               <tbody>
-                                                       <row>
-                                                               <entry>IDI_APPICON</entry>
-                                                               <entry>Tray icon</entry>
-                                                       </row>
-                                                       <row>
-                                                               <entry>32512</entry>
-                                                               <entry>Default window icon</entry>
-                                                       </row>
-                                               </tbody>
-                                       </tgroup>
-                               </table>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user
-                               execute the following commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make win-client</userinput>
-</screen>
-                               <para>The output file <filename>evergreen_staff_client_setup.exe</filename> will be created.</para>
-                       </simplesect>
-                       <simplesect>
-                               <title>Packaging a Linux Client</title>
-                               <para>This build creates a Staff Client packaged as a compressed
-                               <literal>tar</literal> archive file with <application>XULrunner</application>
-                               already bundled with it. It requires that you already have the
-                               <application>bzip2</application> utility installed on your system.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, 
-                               execute the following commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make linux-client</userinput>
-</screen>
-                               <para>The output file <filename>evergreen_staff_client.tar.bz2</filename> will be created.</para>
-                       </simplesect>
-                       <simplesect>
-                               <title>Packaging a <application>Firefox</application> Extension</title>
-                               <para>This build creates a Staff Client packaged as a <application>Firefox</application>
-                               extension. It requires that you already have the <systemitem>zip</systemitem>
-                               utility installed on your system.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user,
-                               execute the following commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make extension</userinput>
-</screen>
-                               <para>The output file <filename>evergreen.xpi</filename> will be created.</para>
-                       </simplesect>
-               </section>
-               <section xml:id="staffclientinstallation-autoupdate">
-                       <title>Staff Client Automatic Updates</title>
-                       <indexterm>
-                               <primary>staff client</primary>
-                               <secondary>automatic updates</secondary>
-                       </indexterm>
-                       <para>It is possible to set up support for automatic Staff Client updates, either during
-                       the normal Evergreen server-side build process, or by manually building the Staff Client
-                       with certain special options.</para>
-                       <warning>
-                               <para>Automatic update server certificate requirements are more strict than
-                               normal server requirements. <application>Firefox</application> and
-                               <application>XULrunner</application> will both ignore any automatic update
-                               server that is not validated by a trusted certificate authority. Servers with
-                               exceptions added to force the Staff Client to accept them <emphasis>WILL NOT
-                               WORK</emphasis>.</para>
-                               <para>In addition, automatic updates have special requirements for the file
-                               <filename>update.rdf</filename>:</para>
-                               <orderedlist>
-                                       <listitem>It must be served from an SSL server, or</listitem>
-                                       <listitem>It must be signed with the  <ulink url="https://developer.mozilla.org/en/McCoy">
-                                       https://developer.mozilla.org/en/McCoy</ulink> tool.</listitem>
-                               </orderedlist>
-                               <para>You can pre-install the signing key into the file
-                               <filename>install.rdf</filename> directly, or install it into a copy as
-                               <filename>install.mccoy.rdf</filename>. If the latter exists it will be copied
-                               into the build instead of the original file
-                               <filename>install.rdf</filename>.</para>
-                       </warning>
-                       <simplesect>
-                               <title>Autoupdate Host</title>
-                               <para>You can manually set the name of the automatic update host. If you do
-                               not set the name then, by default, the Staff Client will not include an
-                               automatic update preference. You can set the autoupdate host name as
-                               follows:</para>
-                               <itemizedlist>
-                                       <listitem>
-                                               <para>At configuration time during the normal <emphasis>make install</emphasis>
-                                               process for Evergreen server-side software.</para>
-                                               <para>You can do this when you first configure the Evergreen server-side 
-                                               software (see <xref linkend="serversideinstallation-configure"/>). 
-                                               As the <systemitem class="username">opensrf</systemitem> user, execute 
-                                               the following commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6
-       ./configure --prefix=/openils --sysconfdir=/openils/conf --with-updateshost=hostname
-       make</userinput>
-</screen>
-                                       </listitem>
-                                       <listitem>
-                                               <para>During a manual Staff Client build process.</para>
-                                               <para>You can override the variable
-                                               <envar>AUTOUPDATE_HOST=hostname</envar> and manually build the
-                                               Staff Client from the <literal>staff_client</literal>
-                                               directory (see <xref linkend="staffclientinstallation-autoupdatehost"/> 
-                                               for details). If you specify only a bare hostname (for example, 
-                                               <systemitem class="domainname">example.com</systemitem>) then
-                                               the Staff Client will automatically use the secure URL 
-                                               <systemitem class="domainname">https://example.com</systemitem>.
-                                               If you wish to use a non-https URL, then you must explicitly 
-                                               specify the full URL (for example, 
-                                               <systemitem class="domainname">http://example.com</systemitem>).</para>
-                                               <para>As the <systemitem class="username">opensrf</systemitem> user,
-                                               execute the following commands to build the Staff Client (remember to
-                                               replace <emphasis>SOME_URL</emphasis> with an appropriate value):</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make AUTOUPDATE_HOST=http://SOME_URL build</userinput>
-</screen>
-                                       </listitem>
-                               </itemizedlist>
-                       </simplesect>
-                       <simplesect>
-                               <title>Building Updates</title>
-                               <indexterm>
-                                       <primary>staff client</primary>
-                                       <secondary>automatic updates</secondary>
-                                       <tertiary>building</tertiary>
-                               </indexterm>
-                               <para>Similar to building clients, you can use the targets
-                               <option>generic-updates</option>, <option>win-updates</option>,
-                               <option>linux-updates</option>, and <option>extension-updates</option>
-                               individually with <command>make</command> to build the update files for the
-                               Staff Client. To build all the targets at once, simply use the target
-                               <option>updates</option>.</para>
-                               <para>A full update will be built for each specified target (or for all if you
-                               use the target <option>updates</option>). For all but extensions any previous
-                               full updates (archived by default in the directory 
-                               <filename class="directory">/openils/var/updates/archives</filename>) will be
-                               used to make partial updates. Partial updates tend to be much smaller and will
-                               thus download more quickly, but if something goes wrong with a partial update
-                               the full update will be used as a fallback. Extensions do not currently support
-                               partial updates.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, change
-                               directory to the Staff Client source directory, then execute the following
-                               commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client</userinput>
-</screen>
-                               <para>Command to build all updates at once:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       make updates</userinput>
-</screen>
-                               <para>commands to build updates individually:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       make generic-updates
-       make win-updates
-       make linux-updates
-       make extension-updates</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect>
-                               <title>Building updates with clients</title>
-                               <indexterm>
-                                       <primary>staff client</primary>
-                                       <secondary>automatic updates</secondary>
-                                       <tertiary>building with clients</tertiary>
-                               </indexterm>
-                               <para>To save time and effort you can build updates and manual download
-                               clients at the same time by adding the phrase <literal>"-client"</literal> to each
-                               target name (for example, you could specify <option>updates-client</option> to build 
-                               all the targets at once, or you could specify <option>win-updates-client</option>
-                               to build updates individually). This process will not work for the option
-                               <option>extension-updates</option>.</para>
-                               <para>The clients will be installed alongside the updates and listed on the
-                               <filename>manualupdate.html</filename> page, instead of being left in the
-                               <literal>staff_client</literal> directory.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, execute
-                               one of the following commands:</para>
-                               <para>To build all updates at once:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make updates-client</userinput>
-</screen>
-                               <para>To build updates individually:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make generic-updates-client
-       make win-updates-client
-       make linux-updates-client</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect>
-                               <title>Activating the Update Server</title>
-                               <indexterm>
-                                       <primary>staff client</primary>
-                                       <secondary>automatic updates</secondary>
-                                       <tertiary>activating the update server</tertiary>
-                               </indexterm>
-                               <para>This section reviews scripts associated with the update server, and
-                               requires some final adjustments to file permissions.</para>
-                               <para>The Apache example configuration creates an <literal>updates</literal>
-                               directory that, by default, points to the directory 
-                               <filename class="directory">/openils/var/updates/pub</filename>. This
-                               directory contains one HTML file and several specially-named script files.</para>
-                               <para>The <filename>updatedetails.html</filename> file is the fallback web
-                               page for the update details. The <filename>check</filename> script is used for
-                               <application>XULrunner</application> updates. The
-                               <filename>update.rdf</filename> script is used for extension updates. 
-                               The <filename>manualupdate.html</filename> file checks for clients to provide
-                               download links when automatic updates have failed and uses the download script
-                               to force a download of the generic client XPI (compared to
-                               <application>Firefox</application> trying to install it as an
-                               extension).</para>
-                               <para>To change the permissions for the scripts
-                               <filename>check</filename>, <filename>download</filename>,
-                               <filename>manualupdate.html</filename>, and
-                               <filename>update.rdf</filename>, as the root user execute the following
-                               commands:</para>
-<screen>
-       <userinput>
-       # as the root user:
-       cd /openils/var/updates/pub
-       chmod +x  check  download  manualupdate.html  update.rdf</userinput>
-</screen>
-                       </simplesect>
-               </section>
-               <section>
-                       <title>Other tips</title>
-                       <simplesect xml:id="staffclientinstallation-othertips">
-                               <title>Multiple workstations on one install</title>
-                               <para>Multiple workstation registrations for the same server can be accomplished
-                               with a single Staff Client install by using multiple profiles. When running
-                               <application>XULrunner</application> you can specify the option
-                               <literal>"-profilemanager"</literal> or <literal>"-P"</literal> (uppercase "P")
-                               to force the Profile Manager to start. Unchecking the <literal>"Don't ask at startup"</literal>
-                               option will make this the default.</para>
-                               <para>Once you have opened the Profile Manager you can create additional
-                               profiles, one for each workstation you wish to register. You may need to install
-                               SSL exceptions for each profile.</para>
-                               <para>When building any of the targets <option>win-client</option>,
-                               <option>win-updates-client</option>, or <option>updates-client</option>, you can
-                               specify <option>NSIS_EXTRAOPTS=-DPROFILES</option> to add an option
-                               <guimenuitem>"Evergreen Staff Client Profile Manager"</guimenuitem> to the
-                               start menu.</para>
-                               <para>As the <systemitem class="username">opensrf</systemitem> user, 
-                               execute the following commands:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client
-       make NSIS_EXTRAOPTS=-DPROFILES win-client</userinput>
-</screen>
-                       </simplesect>
-                       <simplesect>
-                               <title> Multiple Staff Clients</title>
-                               <para>It may be confusing if you are not careful, but you can log in to
-                               multiple Evergreen servers at the same time, or a single Evergreen server
-                               multiple times. In either case you will need to create an additional profile for
-                               each additional server or workstation you want to log in as (see the previous
-                               tip in <xref linkend="staffclientinstallation-othertips"/>).</para>
-                               <para>Once you have created the profiles, run
-                               <application>XULrunner</application> with the option <option>-no-remote</option>
-                               (in addition to <option>"-profilemanger"</option> or <option>"-P"</option> if
-                               needed). Instead of <application>XULrunner</application> opening a new login
-                               window on your existing session it will start a new session instead, which can
-                               then be logged in to a different server or workstation ID.</para>
-                       </simplesect>
-               </section>
-       </section>
-       <section xml:id="staffclientinstallation-running-staffclient">
-               <title>Running the Staff Client</title>
-               <indexterm>
-                       <primary>staff client</primary>
-                       <secondary>running</secondary>
-                       <tertiary>linux</tertiary>
-               </indexterm>
-               <para>You can run the Staff Client on a Linux system by using the
-               <application>XULrunner</application> application (installed automatically and by default
-               with <application>Firefox</application> <literal>Version 3.0</literal> and later on 
-               <systemitem class="osname">Ubuntu</systemitem> and
-               <systemitem class="osname">Debian</systemitem> distributions).</para>
-               <para>For example, if the source files for the Evergreen installation are in the directory 
-               <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.6/</filename> you can start the 
-               Staff Client as shown in the following example:</para>
-<screen>
-       <userinput>
-       # as the opensrf user:
-       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client/build
-       xulrunner application.ini</userinput>
-</screen>
-               <section xml:id="staffclientinstallation-workstationnames">
-                       <title>Assigning Workstation Names</title>
-                       <indexterm>
-                               <primary>staff client</primary>
-                               <secondary>assigning workstation names</secondary>
-                       </indexterm>
-                       <para>The Staff Client must be assigned to a library and given a unique name before it
-                       will connect fully to the Evergreen server. The only restriction is that the workstation's
-                       name must be unique within the assigned library. Make sure to select a workstation name
-                       that you will remember later, one that reflects the role, purpose, and/or location of a
-                       particular computer. These names will come up later in statistical reporting, and can also
-                       be handy when troubleshooting.</para>
-                       <mediaobject>
-                               <alt>
-                                       <phrase>Example of unconfigured Staff Client</phrase>
-                               </alt>
-                               <imageobject>
-                                       <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-1.png" format="PNG" scalefit="1" width="60%"/>
-                               </imageobject>
-                       </mediaobject>
-                       <para>In order to assign a workstation a name, a user with appropriate
-                       permissions must login to the Staff Client. In PINES, the local system
-                       administrator (OPSM) has the ability to assign workstation names in their
-                       library system. Library managers (LIBM's) have the ability within their
-                       branch. To assign a workstation a name, login to the system. You will be
-                       prompted to assign the workstation a library and a name:</para>
-                       <mediaobject>
-                               <alt>
-                                       <phrase>Example of configured Staff Client</phrase>
-                               </alt>
-                               <imageobject>
-                                       <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-2.png" format="PNG" scalefit="1" width="60%"/>
-                               </imageobject>
-                       </mediaobject>
-                       <para>Select the library this workstation physically operates in from the drop
-                       down menu. In this example, we have selected "MGRL-MA". Type in a friendly name
-                       for the workstation. In this example, we are installing the Staff Client on the
-                       director's personal system, and have named it as such. Then click
-                       <guibutton>'Register'</guibutton>.</para>
-                       <para>Once you have registered your workstation
-                       with the server, your screen will look like this:</para>
-                       <mediaobject>
-                               <alt>
-                                       <phrase>Example of registered Staff Client</phrase>
-                               </alt>
-                               <imageobject>
-                                       <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-3.png" format="PNG" scalefit="1" width="60%"/>
-                               </imageobject>
-                       </mediaobject>
-                       <para>You are now ready to log into the Staff Client for the first time. Type in
-                       your password again, and click <guibutton>'Login'</guibutton>.</para>
-               </section>
-               <section xml:id="staffclientinstallation-proxy">
-                       <title>Running the Staff Client Over An <systemitem class="protocal">SSH</systemitem> Tunnel</title>
-                       <indexterm>
-                               <primary>staff client</primary>
-                               <secondary>running through an SSH tunnel</secondary>
-                       </indexterm>
-                       <para>You can configure the Staff Client to communicate with the Evergreen server over
-                       an <systemitem class="protocal">SSH</systemitem> tunnel using a SOCKS 5 proxy
-                       server. There are several reasons for sending network traffic for the Staff Client
-                       through an <systemitem class="protocal">SSH</systemitem> proxy:</para>
-                       <itemizedlist>
-                               <listitem>
-                                       <para>Firewalls may prevent you from reaching the Evergreen
-                                       server. This may happen when you are connecting the Staff
-                                       Client to a test server that should not be available
-                                       generally, or it may be the result of network design
-                                       priorities other than ease of use.</para>
-                               </listitem>
-                               <listitem>
-                                       <para>You may wish to improve security in situations where
-                                       Staff Client traffic may be susceptible to network
-                                       eavesdropping. This is especially true when staff machines
-                                       connect via wireless links to the network.</para>
-                               </listitem>
-                       </itemizedlist>
-                       <section>
-                               <title>Setting Up an <systemitem class="protocal">SSH</systemitem> Tunnel</title>
-                               <para>You will need a server that allows you to log in via 
-                               <systemitem class="protocal">SSH</systemitem> and has network access to the 
-                               Evergreen server you want to reach. You will use your username and password
-                               for that <systemitem class="protocal">SSH</systemitem> server to set up a
-                               tunnel.</para>
-                               <para>For <systemitem class="osname">Windows</systemitem> users, one good
-                               solution is the open-source utility
-                               <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</ulink>,
-                               a free <systemitem class="protocal">telnet/SSH</systemitem> client.
-                               Following are instructions for setting up an <application>SSH</application> 
-                               session using the <application>PuTTY</application> utility:</para>
-                               <mediaobject>
-                                       <alt>
-                                               <phrase>Setting up an <systemitem class="protocal">SSH</systemitem>
-                                               tunnel in <application>PuTTY</application></phrase>
-                                       </alt>
-                                       <imageobject>
-                                               <imagedata fileref="../media/staffclientinstallation-proxy-putty-1.png" format="PNG" scalefit="1" width="60%"/>
-                                       </imageobject>
-                               </mediaobject>
-                               <procedure>
-                                       <step>
-                                               <para>Using the menu on the left, find the section:</para>
-                                               <para>
-                                                       <menuchoice>
-                                                               <guimenu>Connection</guimenu>
-                                                               <guimenuitem>SSH</guimenuitem>
-                                                               <guimenuitem>Tunnels</guimenuitem>
-                                                       </menuchoice>
-                                               </para>
-                                       </step>
-                                       <step>
-                                               <para>In the section on the right labeled <literal>"Source
-                                               port"</literal>, enter <literal>9999</literal>.</para>
-                                       </step>
-                                       <step>
-                                               <para>Set the checkbox <literal>"Dynamic"</literal>. Do not
-                                               enter anything in the <literal>"Destination"</literal> text
-                                               entry box.</para>
-                                       </step>
-                                       <step>
-                                               <para>Click <guibutton>'Add'</guibutton> and notice that
-                                               <literal>"D9999"</literal> now appears in the section
-                                               labeled <literal>"Forwarded ports"</literal>.</para>
-                                       </step>
-                                       <step>
-                                               <para>Use the menu on the left, find the
-                                               <literal>"Session"</literal> section, then enter the host name
-                                               of the <systemitem class="protocal">SSH</systemitem>
-                                               server.</para>
-                                       </step>
-                                       <step>
-                                               <para>A pop-up window will open to allow you to enter your
-                                               username and password. Once you are logged in, the tunnel is
-                                               open.</para>
-                                       </step>
-                               </procedure>
-                               <para>See <ulink url="http://inside.mines.edu/~gmurray/HowTo/sshNotes.html">How to set up
-                               <systemitem class="protocal">SSH</systemitem> (for the beginner)</ulink> for information on
-                               setting up <systemitem class="protocal">SSH</systemitem> for other client operating
-                               systems.</para>
-                       </section>
-                       <section>
-                               <title>Configuring the Staff Client to Use the <systemitem class="protocal">SSH</systemitem> Tunnel</title>
-                               <para>In order to tell the Staff Client that all traffic should be sent
-                               through the <systemitem class="protocal">SSH</systemitem> tunnel just configured,
-                               you must find edit the file <filename>all.js</filename>, usually located at
-                               <filename>C:\Program Files\Evergreen Staff Client\greprefs\all.js</filename>
-                                on a  <systemitem class="osname">Windows</systemitem> system.
-                               Search this file for the word <literal>socks</literal> to find the appropriate
-                               section for the following changes.</para>
-                               <mediaobject>
-                                       <alt>
-                                               <phrase>The SOCKS section of "all.js" before changes</phrase>
-                                       </alt>
-                                       <imageobject>
-                                               <imagedata fileref="../media/staffclientinstallation-proxy-socks-1.png" format="PNG" scalefit="1" width="70%"/>
-                                       </imageobject>
-                               </mediaobject>
-                               <para>Make the following changes:</para>
-                               <itemizedlist>
-                                       <listitem>
-                                               <para>Change the value of <literal>network.proxy.socks</literal> 
-                                               from <literal>""</literal> to <literal>localhost</literal>.</para>
-                                       </listitem>
-                                       <listitem>
-                                               <para>Change the value of <literal>network.proxy.socks_port</literal>
-                                               from <literal>0</literal> to <literal>9999</literal>.</para>
-                                       </listitem>
-                               </itemizedlist>
-                               <mediaobject>
-                                       <alt>
-                                               <phrase>The SOCKS section of "all.js" after changes</phrase>
-                                       </alt>
-                                       <imageobject>
-                                               <imagedata fileref="../media/staffclientinstallation-proxy-socks-2.png" format="PNG" scalefit="1" width="70%"/>
-                                       </imageobject>
-                               </mediaobject>
-                               <para>If everything is working correctly, you should now be able to run 
-                               the Staff Client and all its data will be sent encrypted through the 
-                               <systemitem class="protocal">SSH</systemitem> tunnel you have just configured.</para>
-                       </section>
-               </section>
-               <section>
-                       <title>Navigating a Tabbed Interface</title>
-                       <para>Like many popular current web browsers and other applications, the Staff Client
-                       uses a "tabbed" interface. Tabs allow you to have several pages open at the same time
-                       in a single window. This is easier to manage on your computer screen than multiple
-                       windows, since you can easily switch between tabs in the same window.</para>
-                       <mediaobject>
-                               <alt>
-                                       <phrase>Tabs in the Staff Client window</phrase>
-                               </alt>
-                               <imageobject>
-                                       <imagedata fileref="../media/staffclientinstallation-tabbed-1.png" format="PNG" scalefit="1" width="70%"/>
-                               </imageobject>
-                       </mediaobject>
-                       <para>The "tabs" appear below the menu bar in the Staff Client with a descriptive
-                       title. Simply select a tab to bring it to the front and view the page displayed in the
-                       tab. You can use tabs to have access to multiple things all at the same time: patron
-                       records and searches, bibliographic records and searches, circulation or cataloging
-                       interfaces - anything at all in the Staff Client.</para>
-                       <itemizedlist>
-                               <listitem>Create a new tab by pressing
-                               <keycombo>
-                                       <keycap>Ctrl</keycap>
-                                       <keycap>T</keycap>
-                               </keycombo>
-                               on the keyboard or selecting:
-                               <menuchoice>
-                                       <guimenu>File</guimenu>
-                                       <guimenuitem>New Tab</guimenuitem>
-                               </menuchoice>
-                               from the menu.</listitem>
-                               <listitem>Close a tab by pressing
-                               <keycombo>
-                                       <keycap>Ctrl</keycap>
-                                       <keycap>W</keycap>
-                               </keycombo> on the keyboard or selecting
-                               <menuchoice>
-                                       <guimenu>File</guimenu>
-                                       <guimenuitem>Close Tab</guimenuitem>
-                               </menuchoice>
-                               from the menu.</listitem>
-                               <listitem>Switch tabs by pressing 
-                               <keycombo>
-                                       <keycap>Ctrl</keycap>
-                                       <keycap>Tab</keycap>
-                               </keycombo>
-                               on the keyboard or selecting the tab in the tab bar.</listitem>
-                       </itemizedlist>
-               </section>
-       </section>
-</chapter>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<chapter xml:id="staffclientinstallation" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xl="http://www.w3.org/1999/xlink">\r
+       <info>\r
+               <title>Installation of Evergreen Staff Client Software</title>\r
+               <abstract>\r
+                       <para>This section describes installation of the Evergreen Staff Client software.</para>\r
+               </abstract>\r
+       </info>\r
+       <section xml:id="staffclientinstallation-installing-staffclient">\r
+               <title>Installing the Staff Client</title>\r
+               <indexterm>\r
+                       <primary>staff client</primary>\r
+                       <secondary>installing</secondary>\r
+               </indexterm>\r
+               <section xml:id="staffclientinstallation-installing-prebuilt">\r
+                       <title>Installing a Pre-Built Staff Client</title>\r
+                       <para>A pre-built Staff Client is available for <systemitem class="osname">Windows</systemitem>,\r
+                       <systemitem class="osname">Mac</systemitem> or Linux systems. Installing the Staff Client in\r
+                       each of these environments is described in the following sections.</para>\r
+                       <section xml:id="staffclientinstallation-installing-windows">\r
+                               <title>Installing on <systemitem class="osname">Windows</systemitem></title>\r
+                               <indexterm>\r
+                                       <primary>staff client</primary>\r
+                                       <secondary>installing</secondary>\r
+                                       <tertiary>Windows</tertiary>\r
+                               </indexterm>\r
+                               <para>In this section we describe the process of installing the Staff Client on the\r
+                               <systemitem class="osname">Microsoft Windows</systemitem> operating system.</para>\r
+                               <para>Visit the downloads section of the Evergreen website at\r
+                               <ulink url="http://www.evergreen-ils.org/downloads.php">http://www.evergreen-ils.org/downloads.php</ulink>\r
+                               and find the standard <systemitem class="osname">Microsoft Windows</systemitem> Installer\r
+                               that contains the current version of the Staff Client. Download the Installer, then run\r
+                               it. A screen that looks similar to this should appear:</para>\r
+                               <mediaobject>\r
+                                       <alt>\r
+                                               <phrase>Running the Staff Client installer</phrase>\r
+                                       </alt>\r
+                                       <imageobject>\r
+                                               <imagedata fileref="../media/staffclientinstallation-staffclient-1.png" format="PNG" scalefit="1" width="60%"/>\r
+                                       </imageobject>\r
+                               </mediaobject>\r
+                               <para>Click <guibutton>'Next'</guibutton> to continue through the guided install\r
+                               process. The Install Wizard will ask you to agree to the end-user license, ask you where\r
+                               to install the software, ask about where to place icons, and then will automatically\r
+                               install the software on your workstation.</para>\r
+                               <para>When you run the Staff Client for the first time, a screen similar to this should\r
+                               appear:</para>\r
+                               <mediaobject>\r
+                                       <alt>\r
+                                               <phrase>Running the Staff Client for the first time</phrase>\r
+                                       </alt>\r
+                                       <imageobject>\r
+                                               <imagedata fileref="../media/staffclientinstallation-staffclient-2.png" format="PNG" scalefit="1" width="60%"/>\r
+                                       </imageobject>\r
+                               </mediaobject>\r
+                               <para>First, add the name of your Evergreen server to the field \r
+                               <emphasis role="bold">Hostname</emphasis> in the <emphasis role="bold">Server</emphasis>\r
+                               section. For example, the PINES demo system is \r
+                               <ulink url="http://demo.gapines.org">http://demo.gapines.org</ulink>. \r
+                               After adding the server name, click <guibutton>'Re-Test Server'</guibutton>.</para>\r
+                               <para>Because this is the initial run of the Staff Client, you will see a warning in the\r
+                               upper-right saying: <emphasis role="bold">Not yet configured for the specified\r
+                               server</emphasis>. The first thing you must do to the Staff Client on every workstation\r
+                               is to assign it a workstation name. This is covered in \r
+                               <xref linkend="staffclientinstallation-workstationnames"/>.</para>\r
+                                       <note><para>Users must have the <literal>REGISTER_WORKSTATION</literal> permission and be assigned the appropriate working location(s) in order to \r
+                                       register a workstation.</para></note> \r
+                                       <para>To add working locations to a user’s account:</para>\r
+                                       <orderedlist>\r
+                                               <listitem>\r
+                                                       <para>Retrieve the user through a patron search and select <menuchoice><guimenu>Other</guimenu><guimenuitem>User Permission \r
+                                                       Editor</guimenuitem></menuchoice> and select the boxes for the locations necessary.</para> \r
+                                                       <para>Save the user record.</para>\r
+                                                       <note>\r
+                                                               <para>Making modifications to <guilabel>Working Locations</guilabel> while changing permission settings does not work â€“ when this \r
+                                                               workflow is performed, permission changes will not be applied to the database.</para>\r
+                                                       </note>\r
+                                               </listitem>\r
+                                               <listitem>\r
+                                                       <para>Alternately, from the <guimenu>Admin</guimenu> menu, select <guimenuitem>User Permission Editor</guimenuitem> and retrieve the user by \r
+                                                       barcode.</para>  \r
+                                                       <para>Make changes to working locations as described above.</para>\r
+                                               </listitem>\r
+                                       </orderedlist>\r
+                       </section>\r
+                       <section xml:id="staffclientinstallation-installing-macos">\r
+                               <title>Installing on <systemitem class="osname">Mac OS</systemitem></title>\r
+                               <indexterm>\r
+                                       <primary>staff client</primary>\r
+                                       <secondary>installing</secondary>\r
+                                       <tertiary>Mac OS</tertiary>\r
+                               </indexterm>\r
+                               <para>This section describes <systemitem class="osname">Mac OS</systemitem>\r
+                               packages and related versions of <application>XULrunner</application> that can\r
+                               be used to run the Staff Client in a <systemitem class="osname">Mac OS</systemitem>\r
+                               environment.</para>\r
+                               <simplesect>\r
+                                       <title>Evergreen Version 1.2.3.0</title>\r
+                                       <orderedlist>\r
+                                               <listitem>\r
+                                                       <para>A <systemitem class="osname">Mac OS</systemitem> package that\r
+                                                       contains an early version of the Staff Client (version 1.2.3.0) for use\r
+                                                       with <application>XULrunner</application> is available. You can find\r
+                                                       current releases of <application>XULrunner</application> here:\r
+                                                       <ulink url="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases">\r
+                                                       http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases</ulink> .\r
+                                                       Download and install the latest version. You can find further information \r
+                                                       about <application>XULrunner</application> here: \r
+                                                       <ulink url="https://developer.mozilla.org/en/xulrunner">\r
+                                                       https://developer.mozilla.org/en/xulrunner</ulink>.</para>\r
+                                                       <para>Note that later versions of <application>XULrunner</application>\r
+                                                       (e.g., version 1.9.2.13) have replaced version 1.8.0.4, which has known\r
+                                                       security holes and is not recommended for applications that deal with\r
+                                                       public web content.</para>\r
+                                               </listitem>\r
+                                               <listitem>\r
+                                                       <para>A <systemitem class="osname">Mac OS</systemitem>\r
+                                                       Installation package for Staff Client version 1.2.3.0 is\r
+                                                       available from Evergreen Indiana. Download and install it from\r
+                                                       here:\r
+                                                       <ulink url="http://evergreen.lib.in.us/opac/extras/files/evergreen_osx_staff_client_1_2_3.zip">\r
+                                                       evergreen_osx_staff_client_1_2_3.zip</ulink> .\r
+                                                       </para>\r
+                                               </listitem>\r
+                                               <listitem>\r
+                                                       <para>To upgrade to a more recent version of the Staff Client, you can\r
+                                                       copy the <filename class="directory">build</filename> directory from a\r
+                                                       working <systemitem class="osname">Windows</systemitem> installation of\r
+                                                       the desired version of the Staff Client to your \r
+                                                       <systemitem class="osname">Mac</systemitem>. \r
+                                                       The required files may be located in a directory like this on the\r
+                                                       <systemitem class="osname">Windows</systemitem> machine: \r
+                                                       <filename class="directory">C:\Program Files\Evergreen Staff Client\build</filename>.\r
+                                                       Copy these files to the <filename class="directory">Resources</filename>\r
+                                                       folder within the <package>Open-ILS</package> package in your \r
+                                                       <filename class="directory">Applications</filename> directory on the Mac,\r
+                                                       overwriting files with the same names.</para>\r
+                                               </listitem>\r
+                                               <listitem>Drag the application's icon to your toolbar for easier\r
+                                               access.</listitem>\r
+                                       </orderedlist>\r
+                                       <para>When you run the Staff Client installer, a screen will appear that looks\r
+                                       similar to this:</para>\r
+                                       <mediaobject>\r
+                                               <alt>\r
+                                                       <phrase>Running the Staff Client installer for \r
+                                                       <systemitem class="osname">Mac OS</systemitem></phrase>\r
+                                               </alt>\r
+                                               <imageobject>\r
+                                                       <imagedata fileref="../media/staffclientinstallation-staffclient-3.png" format="PNG" scalefit="1" width="20%"/>\r
+                                               </imageobject>\r
+                                       </mediaobject>\r
+                                       <para>Click <guibutton>'Continue'</guibutton>, accept the license, then finish the\r
+                                       installation. The application will be located at the destination you selected\r
+                                       during installation. You will then be able to drag the application into your\r
+                                       toolbar for easier access.</para>\r
+                                       <mediaobject>\r
+                                               <alt>\r
+                                                       <phrase>Finishing the installation</phrase>\r
+                                               </alt>\r
+                                               <imageobject>\r
+                                                       <imagedata fileref="../media/staffclientinstallation-staffclient-4.png" format="PNG" scalefit="1" width="20%"/>\r
+                                               </imageobject>\r
+                                       </mediaobject>\r
+                               </simplesect>\r
+                               <simplesect>\r
+                                       <title>Running directly using <application>XULrunner</application></title>\r
+                                       <indexterm>\r
+                                               <primary>staff client</primary>\r
+                                               <secondary>XULRunner</secondary>\r
+                                       </indexterm>\r
+                                       <para>You must install an appropriate version of <application>XULrunner</application> \r
+                                       to match the Evergreen version. See the following table for the recommended version of\r
+                                       <application>XULrunner</application>:</para>\r
+                                       <table xml:id="staffclientinstallation-table-1">\r
+                                               <?dbfo keep-together="always" ?>\r
+                                               <title>Evergreen / <application>XULrunner</application> Dependencies</title>\r
+                                               <tgroup align="left" cols="2" colsep="1" rowsep="1">\r
+                                                       <colspec colname="evergreen_version" colnum="1" colwidth="1.0*"/>\r
+                                                       <colspec colname="xulrunner_version" colnum="2" colwidth="1.0*"/>\r
+                                                       <thead>\r
+                                                               <row>\r
+                                                                       <entry>Evergreen Version</entry>\r
+                                                                       <entry>XULRunner Version</entry>\r
+                                                               </row>\r
+                                                       </thead>\r
+                                                       <tbody>\r
+                                                               <row>\r
+                                                                       <entry>Evergreen 1.6.x.x</entry>\r
+                                                                       <entry>XULrunner 1.9.x.x</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>Evergreen 1.4.x.x</entry>\r
+                                                                       <entry>XULrunner 1.8.0.4 or XULrunner 1.8.0.3</entry>\r
+                                                               </row>\r
+                                                               <row>\r
+                                                                       <entry>Evergreen 1.2.x.x</entry>\r
+                                                                       <entry>XULrunner 1.8.0.4 or XULrunner 1.8.0.3</entry>\r
+                                                               </row>\r
+                                                       </tbody>\r
+                                               </tgroup>\r
+                                       </table>\r
+                                       <note>If you have issues removing previously installed\r
+                                       <application>XULrunner</application> versions see \r
+                                       <xref linkend="staffclientinstallation-remove-xulrunner"/>\r
+                                       for further information.</note>\r
+                                       <para>The Staff Client data from the directory \r
+                                       <filename class="directory">./staff_client/build</filename> must be placed\r
+                                       somewhere on the machine (e.g. \r
+                                       <filename class="directory">~/Desktop/Evergreen_Staff_Client</filename>).</para>\r
+                                       <para>Remember to call <application>XULrunner</application> with the full path to the\r
+                                       binary, followed by the install command and the path to the client data:</para>\r
+<screen>\r
+       <userinput>\r
+       /Library/Frameworks/XUL.framework/xulrunner-bin --install-app ~/Desktop/Evergreen_Staff_Client</userinput>\r
+</screen>\r
+                                       <para>The command should exit quietly and will create the folder \r
+                                       <filename class="directory">/Applications/OpenILS</filename>,\r
+                                       containing a launcher named <application>open_ils_staff_client</application>.</para>\r
+                               </simplesect>\r
+                               <simplesect xml:id="staffclientinstallation-remove-xulrunner">\r
+                                       <title>(OPTIONAL) Removing previously installed XULRunner versions</title>\r
+                                       <indexterm>\r
+                                               <primary>XULRunner</primary>\r
+                                               <secondary>removing previous versions</secondary>\r
+                                       </indexterm>\r
+                                       <para>If you already have a newer version of\r
+                                       <application>XULrunner</application> installed, per the release notes, \r
+                                       you will need to remove the entire directory \r
+                                       <filename class="directory">/Library/Frameworks/XUL.framework</filename> \r
+                                       before downgrading.</para>\r
+                                       <para>In addition, you may also need to remove the previous file\r
+                                       <filename>/Library/Receipts/xulrunner-ver-mak.pkg</filename> .</para>\r
+                                       <para>If file <filename>/Library/Receipts/xulrunner-ver-mak.pkg</filename> does\r
+                                       not exist (possibly in newer <systemitem class="osname">Mac OS</systemitem>\r
+                                       releases), you need to flush the file <filename>receiptdb</filename>.</para>\r
+                                       <note>If you install a newer version of <application>XULrunner</application>\r
+                                       over a previous (older) install, the older install is not removed but the\r
+                                       symlinks are changed to the newer one.</note>\r
+                               </simplesect>\r
+                               <simplesect>\r
+                                       <title>(OPTIONAL) Flush Receiptdb file:</title>\r
+                                       <para>First, get the package identifier, then purge/forget the build that was\r
+                                       initially installed:</para>\r
+<screen>\r
+       <userinput>\r
+       sudo pkgutil --pkgs > /tmp/pkgs.txt\r
+       sudo pkgutil --forget org.mozilla.xulrunner</userinput>\r
+</screen>\r
+                                       <note>It may not be necessary to edit the file\r
+                                       <filename>/Library/Receipts/InstallHistory.plist</filename> after deleting the\r
+                                       folder <filename class="directory">XUL.framework</filename>. See\r
+                                       <ulink url="http://lists.apple.com/archives/Installer-dev/2009/Jul/msg00008.html">\r
+                                       http://lists.apple.com/archives/Installer-dev/2009/Jul/msg00008.html</ulink> \r
+                                       for more information.</note>\r
+                               </simplesect>\r
+                               <simplesect>\r
+                                       <title>Creating an APP file: Staff Client and <application>XULrunner</application> Bundled</title>\r
+                                       <para>An APP file is basically a folder. Start with a folder stucture like this:</para>\r
+<screen>\r
+       <prompt>\r
+       Evergreen.app\r
+       __Contents\r
+       ____Frameworks\r
+       ____Resources\r
+       ____MacOS</prompt>\r
+</screen>\r
+                                       <para>Create an APP folder structure with the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       mkdir -p Evergreen.app/Contents/Frameworks\r
+       mkdir -p Evergreen.app/Contents/Resources\r
+       mkdir -p Evergreen.app/Contents/MacOS</userinput>\r
+</screen>\r
+                                       <orderedlist>\r
+                                               <listitem>\r
+                                                       <para>Create a new file in the folder\r
+                                                       <filename class="directory">Evergreen.app/Contents/Info.plist</filename>\r
+                                                       containing the following data (adjust for your version of\r
+                                                       Evergreen):</para>\r
+                                                       <programlisting language="xml"><![CDATA[\r
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\r
+<plist version="1.0">\r
+<dict>\r
+       <key>CFBundleExecutable</key>\r
+       <string>xulrunner</string>\r
+       <key>CFBundleGetInfoString</key>\r
+       <string>OpenILS open_ils_staff_client rel_1_6_1_6</string>\r
+       <key>CFBundleInfoDictionaryVersion</key>\r
+       <string>6.0</string>\r
+       <key>CFBundleName</key>\r
+       <string>Evergreen Staff Client</string>\r
+       <key>CFBundlePackageType</key>\r
+       <string>APPL</string>\r
+       <key>CFBundleShortVersionString</key>\r
+       <string>rel_1_6_1_6</string>\r
+       <key>CFBundleVersion</key>\r
+       <string>rel_1_6_1_6.rel_1_6_1_6</string>\r
+       <key>NSAppleScriptEnabled</key>\r
+       <true/>\r
+       <key>CFBundleTypeIconFile</key>\r
+       <string>Evergreen.icns</string>\r
+</dict>\r
+</plist>\r
+]]></programlisting>\r
+                                               </listitem>\r
+                                               <listitem>Download and install an appropriate \r
+                                               <systemitem class="osname">Mac OS</systemitem> package of \r
+                                               <application>XULrunner</application> from the Mozilla website\r
+                                               <ulink url="https://developer.mozilla.org/en/xulrunner">\r
+                                               https://developer.mozilla.org/en/xulrunner</ulink> (see \r
+                                               <xref linkend="staffclientinstallation-table-1"/> for recommendations).</listitem>\r
+                                               <listitem>\r
+                                                       <para>Make a copy of the folder\r
+                                                       <filename class="directory">/Library/Frameworks/XUL.Framework</filename>\r
+                                                       inside your APP file. It should look something like this:</para>\r
+<screen>\r
+       <prompt>\r
+       Evergreen.app/\r
+       __Contents/\r
+       ____Frameworks/\r
+       ______XUL.Framework/\r
+       ______Versions/\r
+       ________Current -> 1.9.1.3 (symlink)\r
+       ________1.9.1.3/\r
+       ______XUL -> Versions/Current/XUL\r
+       ______libxpcom.dylib -> Versions/Current/libxpcom.dylib\r
+       ______xulrunner-bin -> Versions/Current/xulrunner-bin</prompt>\r
+</screen>\r
+                                               </listitem>\r
+                                               <listitem>Copy\r
+                                               <filename>XUL.Framework/Versions/Current/xulrunner</filename> into the\r
+                                               folder <filename class="directory">Evergreen.app/MacOS</filename>\r
+                                               (do not symlink; copy the file).</listitem>\r
+                                               <listitem>\r
+                                                       <para>Make <filename>Evergreen.app/Resources</filename> the root\r
+                                                       of your Evergreen application files like this:</para>\r
+<screen>\r
+       <prompt>\r
+       Evergreen.app/\r
+       __Contents/\r
+       ____Resources/\r
+       ______BUILD_ID\r
+       ______application.ini\r
+       ______chrome/\r
+       ______components/\r
+       ______etc.</prompt>\r
+</screen>\r
+                                               </listitem>\r
+                                               <listitem>Put a <systemitem class="osname">Mac</systemitem> \r
+                                               format icon file named <filename>Evergreen.icns</filename> in \r
+                                               <filename class="resources">Resources</filename>.</listitem>\r
+                                       </orderedlist>\r
+                               </simplesect>\r
+                       </section>\r
+                       <section xml:id="staffclientinstallation-installing-linux">\r
+                               <title>Installing on Linux</title>\r
+                               <simplesect>\r
+                                       <title>Quick Upgrade of the Staff Client</title>\r
+                                       <para>A Linux Staff Client is automatically built on the server as part of the\r
+                                       normal <emphasis>make install</emphasis> process for Evergreen server-side\r
+                                       software. To upgrade the Staff Client on a remote Linux workstation with a new\r
+                                       version, just copy the directory tree containing the Staff Client from your\r
+                                       server to the remote workstation.</para>\r
+                                       <para>Execute the following commands, replacing <literal>USER</literal>,\r
+                                       <literal>WORKSTATION</literal>, and <literal>SOME_PATH</literal> with\r
+                                       appropriate values:</para>\r
+<screen>\r
+       <userinput>\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       scp -r ./build USER@WORKSTATION:/SOME_PATH/</userinput>\r
+</screen>\r
+                                       <para>You should test the newly copied Staff Client on the remote workstation.\r
+                                       Log into the workstation and execute the following command:</para>\r
+<screen>\r
+       <userinput>\r
+       xulrunner /SOME_PATH/build/application.ini</userinput>\r
+</screen>\r
+                               </simplesect>\r
+                               <simplesect>\r
+                                       <title>Building the Staff Client on the Server</title>\r
+                                       <indexterm>\r
+                                               <primary>staff client</primary>\r
+                                               <secondary>building on the server</secondary>\r
+                                       </indexterm>\r
+                                       <para>A Linux Staff Client is automatically built on the server as part of the\r
+                                       normal <emphasis>make install</emphasis> process for Evergreen server-side\r
+                                       software. See <xref linkend="serversideinstallation-compile"/> for details of\r
+                                       the build process.</para>\r
+                                       <para>In order to install a compatible Staff Client on another Linux system, you\r
+                                       can copy the appropriate files from the Staff Client build directory on your\r
+                                       server to the new Linux system. You could manually build the Staff Client on the\r
+                                       new system, but you must ensure that the <envar>BUILD_ID</envar> you chose on\r
+                                       the server matches the <envar>BUILD_ID</envar> for each Staff Client you use on\r
+                                       other systems.</para>\r
+                                       <para>If you wish to use a pre-packaged <systemitem class="osname">Windows</systemitem>\r
+                                       version on some systems, you may want to choose the <envar>BUILD_ID</envar> on\r
+                                       both server and other versions to match that of the \r
+                                       <systemitem class="osname">Windows</systemitem> Staff Client. To determine which\r
+                                       <envar>BUILD_ID</envar> was used for existing Staff Client installations,\r
+                                       execute each Staff Client and click the <guibutton>'About this Client'</guibutton>\r
+                                       button.</para>\r
+                                       <para>If you are allowed to make changes on the Evergreen server, another option\r
+                                       is to create a symbolic link. In order for a copy of the Staff Client and server\r
+                                       to work together, the <envar>BUILD_ID</envar> must match the name of the\r
+                                       directory containing the server components of the Staff Client, or the name of a\r
+                                       symbolic link to that directory. As the \r
+                                       <systemitem class="username">root</systemitem> user, make the changes as follows:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       cd /openils/var/web/xul\r
+       ln -s SERVER_BUILD_ID/ CLIENT_BUILD_ID</userinput>\r
+</screen>\r
+                               </simplesect>\r
+                               <simplesect>\r
+                                       <title>Building the Staff Client on a Client Machine</title>\r
+                                       <para>This section is directed toward end-users who wish to use Linux rather than\r
+                                       <systemitem class="osname">Windows</systemitem> for client machines, but have limited\r
+                                       Linux experience. You can build the Staff Client on a Linux system without installing the\r
+                                       Evergreen Server component. This is a relatively simple process compared to server\r
+                                       installation, but does require some command-line work. The following instructions are \r
+                                       for building Staff Client version 1.2.1.4 on \r
+                                       <systemitem class="osname">Kubuntu 7.10</systemitem>; modify them as needed for\r
+                                       other distributions (the instructions should work as-is for\r
+                                       <systemitem class="osname">Ubuntu</systemitem> or \r
+                                       <systemitem class="osname">Ubuntu</systemitem> derivatives).</para>\r
+                                       <procedure>\r
+                                               <step>\r
+                                                       <title>Prerequisites</title>\r
+                                                       <para>Both <application>subversion</application> and\r
+                                                       <application>XULrunner</application> are required to build the Staff\r
+                                                       Client. As the <systemitem class="username">root</systemitem> user, \r
+                                                       use <command>apt-get</command> to install packages for\r
+                                                       <application>subversion</application> and\r
+                                                       <application>XULrunner</application>. You can also use\r
+                                                       <command>synaptic</command>, the graphical user interface for\r
+                                                       <command>apt-get</command>. For <application>subversion</application>,\r
+                                                       select the latest version; for <application>XULrunner</application>,\r
+                                                       select version <emphasis>1.8.1.4-2ubuntu5</emphasis>.</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       sudo apt-get install subversion\r
+       sudo apt-get install xulrunner</userinput>\r
+</screen>\r
+                                               </step>\r
+                                               <step>\r
+                                                       <title>Download the Source Code</title>\r
+                                                       <itemizedlist>\r
+                                                               <listitem>\r
+                                                                       <para>Determine which version is needed</para>\r
+                                                                       <para>For most end-users, a specific version is required\r
+                                                                       to communicate properly with the Evergreen server. Check\r
+                                                                       with your system administrator, IT person, or HelpDesk to\r
+                                                                       determine which Staff Client versions are\r
+                                                                       supported.</para>\r
+                                                                       <para>Next, you need to determine which\r
+                                                                       <emphasis>tag</emphasis> to use when downloading the\r
+                                                                       source code. Tags are markers in the source code to create\r
+                                                                       a snapshot of the code as it existed at a certain time;\r
+                                                                       tags usually point to tested and stable code, or at least\r
+                                                                       a community-recognized release version.</para>\r
+                                                                       <para>To determine which tag to use, browse to \r
+                                                                       <ulink url="http://svn.open-ils.org/trac/ILS/browser">\r
+                                                                       http://svn.open-ils.org/trac/ILS/browser</ulink>. \r
+                                                                       Look in the <guilabel>Visit</guilabel> drop-down box; see\r
+                                                                       the list of <guilabel>Branches</guilabel> and, further\r
+                                                                       down, a list of <guilabel>Tags</guilabel>. You may have \r
+                                                                       to do some guesswork, but it is fairly straightforward to\r
+                                                                       determine which tag to use. If the server is version\r
+                                                                       1.6.1.6, you will want to use the tag that looks most\r
+                                                                       appropriate. For example, as you look through the tag\r
+                                                                       list, notice the tag named 'rel_1_6_1_6'. This is the tag\r
+                                                                       you need; make a note of it for the next step.</para>\r
+                                                               </listitem>\r
+                                                               <listitem>\r
+                                                                       <para>Download the Code</para>\r
+                                                                       <para>As the\r
+                                                                       <systemitem class="username">opensrf</systemitem> \r
+                                                                       user, open a terminal (command-line prompt) and navigate\r
+                                                                       to the directory in which you wish to download the Staff\r
+                                                                       Client. Use the following commands to download the proper\r
+                                                                       version of the source code by tag name:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /DOWNLOAD/DIRECTORY\r
+       svn co rel_1_6_1_6/</userinput>\r
+</screen>\r
+                                                                       <para>Remember to change "rel_1_6_1_6" to the appropriate\r
+                                                                       tag for your installation.</para>\r
+                                                               </listitem>\r
+                                                       </itemizedlist>\r
+                                               </step>\r
+                                               <step>\r
+                                                       <title>Build the Staff Client</title>\r
+                                                       <para>In the following example, navigate to the directory in\r
+                                                       which the source code was downloaded, then navigate to the\r
+                                                       proper subdirectory and run the "make" utility to actually build\r
+                                                       the Staff Client. Remember to check with your system\r
+                                                       administrator about which Staff Client <envar>BUILD_ID</envar>\r
+                                                       to use. The server checks the Staff Client\r
+                                                       <envar>BUILD_ID</envar> against itself to determine whether or\r
+                                                       not a connecting client is supported. For instance, for the\r
+                                                       PINES installation (version 1.6.1.6) the supported\r
+                                                       <envar>BUILD_ID</envar> is "rel_1_6_1_6". Modify the following\r
+                                                       commands accordingly.</para>\r
+                                                       <para>As the <systemitem class="username">opensrf</systemitem>\r
+                                                       user, run the following commands to build the Staff Client:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       wget http://evergreen-ils.org/downloads/Evergreen-ILS-1.6.1.6.tar.gz\r
+       tar xfz Evergreen-ILS-1.6.1.6.tar.gz\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6\r
+       ./configure --prefix=/openils --sysconfdir=/openils/conf\r
+       cd ./Open-ILS/xul/staff_client/\r
+       make STAFF_CLIENT_BUILD_ID='rel_1_6_1_6' install</userinput>\r
+</screen>\r
+                                               </step>\r
+                                               <step>\r
+                                                       <title>Run the Staff Client</title>\r
+                                                       <para>As the <systemitem class="username">opensrf</systemitem> \r
+                                                       user, navigate to the <filename class="directory">build/</filename>\r
+                                                       subdirectory and run the following command:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client/build\r
+       xulrunner application.ini</userinput>\r
+</screen>\r
+                                               </step>\r
+                                               <step>\r
+                                                       <title>(OPTIONAL) Clean Up / Create Shortcuts</title>\r
+                                                       <para>The source code download included many files that are\r
+                                                       needed to build the Staff Client but are not necessary to run\r
+                                                       it. You may wish to remove them to save space, or to create a\r
+                                                       clean <literal>staging</literal> directory containing the\r
+                                                       finished Staff Client that can then be copied to other\r
+                                                       machines. To do this, execute the following commands (remember\r
+                                                       to replace <emphasis>DOWNLOAD_DIRECTORY</emphasis> and\r
+                                                       <emphasis>STAGING_DIRECTORY</emphasis> with the appropriate\r
+                                                       paths):</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       mkdir ~/STAGING_DIRECTORY\r
+       cd ~/DOWNLOAD_DIRECTORY/Open-ILS/xul/\r
+       cp -r staff_client ~/STAGING_DIRECTORY</userinput>\r
+</screen>\r
+                                                       <para>Test the Staff Client to verify that all necessary files\r
+                                                       were copied to the staging directory:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd ~/STAGING_DIRECTORY/staff_client/build\r
+       xulrunner application.ini</userinput>\r
+</screen>\r
+                                                       <para>If there were no problems, then finish the cleanup by\r
+                                                       removing the original download directory as shown:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       rm -r -f ~/DOWNLOAD_DIRECTORY</userinput>\r
+</screen>\r
+                                                       <para>Finally, the command:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       xulrunner ~/STAGING_DIRECTORY/staff_client/build/application.ini</userinput>\r
+</screen>\r
+                                                       <para>will now run the Staff Client. You may wish to create a\r
+                                                       shortcut for the Staff Client. To do so, use the previous\r
+                                                       command as the target for the shortcut:\r
+                                                       <menuchoice>\r
+                                                               <guimenu>Desktop</guimenu>\r
+                                                               <guimenuitem>StartMenu</guimenuitem>\r
+                                                               <guimenuitem>K-Menu</guimenuitem>\r
+                                                       </menuchoice></para>\r
+                                               </step>\r
+                                       </procedure>\r
+                               </simplesect>\r
+                               <simplesect>\r
+                                       <title>Using Wine to Install on Linux</title>\r
+                                       <indexterm>\r
+                                               <primary>staff client</primary>\r
+                                               <secondary>using wine to install on Linux</secondary>\r
+                                       </indexterm>\r
+                                       <para>The Linux application <application>Wine</application> is another\r
+                                       alternative if you wish to install the packaged \r
+                                       <systemitem class="osname">Windows</systemitem> versions rather than manually\r
+                                       building the Staff Client. <application>Wine</application> is a Linux\r
+                                       application that allows users to directly run\r
+                                       <systemitem class="osname">Windows</systemitem> executables, and is a simple \r
+                                       way for casual Linux users to use the Staff Client. You can find more information \r
+                                       about <application>Wine</application> at\r
+                                       <ulink url="http://www.winehq.org/site/docs/wineusr-guide/getting-wine">\r
+                                       http://www.winehq.org/site/docs/wineusr-guide/getting-wine</ulink>.</para>\r
+                                       <para>As the <systemitem class="username">root</systemitem> user, use\r
+                                       <command>apt-get</command> to install the package for <application>Wine</application>. \r
+                                       You can also use <command>synaptic</command>, the graphical user interface.</para>\r
+                                       <orderedlist>\r
+                                               <listitem>\r
+                                                       <para>Install wine:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       sudo apt-get install wine</userinput>\r
+</screen>\r
+                                               </listitem>\r
+                                               <listitem>\r
+                                                       <para>Visit the downloads section of the Evergreen website at\r
+                                                       <ulink url="http://www.evergreen-ils.org/downloads.php">\r
+                                                       http://www.evergreen-ils.org/downloads.php</ulink> and find the\r
+                                                       <systemitem class="osname">Microsoft Windows</systemitem> Installer\r
+                                                       that contains the desired version of the Staff Client. Download\r
+                                                       the installer and place it in a temporary directory.</para>\r
+                                               </listitem>\r
+                                               <listitem>\r
+                                                       <para>As the <systemitem class="username">opensrf</systemitem>\r
+                                                       user, navigate to the temporary directory where you downloaded \r
+                                                       the <systemitem class="osname">Windows</systemitem> installer \r
+                                                       file, then execute it with the <application>wine</application>\r
+                                                       application (remember to replace <emphasis>VERSION</emphasis> with\r
+                                                       the release number of the Staff Client you downloaded):</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /TEMP_DIRECTORY\r
+       wine evergreen-setup-rel_VERSION.exe</userinput>\r
+</screen>\r
+                                                       <para>If this step fails, you may need to configure\r
+                                                       <application>Wine</application> first to properly emulate \r
+                                                       <systemitem class="osname">Windows XP</systemitem>. To do so,\r
+                                                       type <command>winecfg</command> from the command line; in the\r
+                                                       <literal>Applications</literal> tab of the window that pops up,\r
+                                                       select <literal>Default Settings</literal> and choose\r
+                                                       <literal>Windows XP</literal> from the drop-down menu, then\r
+                                                       click <guibutton>'Apply'</guibutton>.</para>\r
+                                               </listitem>\r
+                                               <listitem>\r
+                                                       <para>Launch the Staff Client</para>\r
+                                                       <para>A new entry for the Staff Client should now appear\r
+                                                       somewhere in the <literal>All Applications</literal> menu of\r
+                                                       your Linux desktop. You may also find a new desktop shortcut for\r
+                                                       the Staff Client. To launch the Staff Client, visit the\r
+                                                       <literal>All Applications</literal> menu on your desktop and\r
+                                                       find the section similar to:</para>\r
+                                                       <para>\r
+                                                               <menuchoice>\r
+                                                                       <guimenu>Wine</guimenu>\r
+                                                                       <guimenuitem>Program Files</guimenuitem>\r
+                                                                       <guimenuitem>Evergreen Staff Client</guimenuitem>\r
+                                                                       <guimenuitem>Evergreen Staff Client</guimenuitem>\r
+                                                               </menuchoice>,\r
+                                                       </para>\r
+                                                       <para>or else launch the Staff Client from the new desktop shortcut.</para>\r
+                                               </listitem>\r
+                                       </orderedlist>\r
+                               </simplesect>\r
+                       </section>\r
+               </section>\r
+               <section>\r
+                       <title>Building the Staff Client</title>\r
+                       <indexterm>\r
+                               <primary>staff client</primary>\r
+                               <secondary>building</secondary>\r
+                       </indexterm>\r
+                       <para>You can also manually build the Staff Client by using the <command>make</command>\r
+                       utility in the Staff Client source directory (e.g., the directory \r
+                       <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client</filename>\r
+                       for the current Evergreen version). There are a number of possible options to manually\r
+                       build special versions of the Staff Client on a Linux system. Following is a list of\r
+                       variables that you can pass to <command>make</command> to influence the manual build\r
+                       process:</para>\r
+                       <simplesect>\r
+                               <title>\r
+                                       Build Variable <envar>STAFF_CLIENT_BUILD_ID</envar></title>\r
+                               <para>During the normal <emphasis>make install</emphasis> Evergreen server-side\r
+                               software build process, the variable defaults to an automatically generated\r
+                               date/time string, but you can also override the value of <envar>BUILD_ID</envar>.</para>\r
+                               <para>You could use the following commands during the normal install process:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6\r
+       make STAFF_CLIENT_BUILD_ID=1_6_1_6 install</userinput>\r
+</screen>\r
+                               <para>You can also manually build the Staff Client in the Staff Client\r
+                               source directory with a different <envar>BUILD_ID</envar>.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+                               execute the following commands to build the Staff Client (remember to replace\r
+                               <emphasis>NEW_VERSION</emphasis> with an appropriate value):</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make STAFF_CLIENT_BUILD_ID=NEW_VERSION  build</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>\r
+                                       Build Variable <envar>STAFF_CLIENT_VERSION</envar></title>\r
+                               <para>During the normal <emphasis>make install</emphasis> Evergreen server-side\r
+                               software build process, the variable is pulled automatically from a README file\r
+                               in the Evergreen source root. The variable defaults to\r
+                               <emphasis>0trunk.revision</emphasis>, where the value of "revision" is\r
+                               automatically generated. You can override the value of <envar>VERSION</envar>\r
+                               similarly to the <envar>BUILD_ID</envar>.</para>\r
+                               <para>You could use the following commands during the normal install process:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6\r
+       make STAFF_CLIENT_VERSION=0mytest.200 install</userinput>\r
+</screen>\r
+                               <para>You can also manually build the Staff Client in the Staff Client\r
+                               source directory with a different <envar>VERSION</envar>.</para>\r
+                               <para>If you plan to make extensions update automatically, the \r
+                               <envar>VERSION</envar> needs to conform to the format recommended in \r
+                               <ulink url="https://developer.mozilla.org/en/Toolkit_version_format">\r
+                               Toolkit Version Format</ulink> and newer versions need to be "higher" than older\r
+                               versions.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+                               execute the following commands to build the Staff Client:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make STAFF_CLIENT_VERSION=0mytest.200  build</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>\r
+                                       Build Variable <envar>STAFF_CLIENT_STAMP_ID</envar></title>\r
+                               <para>During the normal <emphasis>make install</emphasis> Evergreen\r
+                               server-side software build process, the variable is generated from\r
+                               <envar>STAFF_CLIENT_VERSION</envar>. You may want to have multiple versions\r
+                               of the Staff Client with different stamps, possibly for different uses or\r
+                               client-side customizations. You can override the value of\r
+                               <envar>STAMP_ID</envar> similarly to the <envar>BUILD_ID</envar>.</para>\r
+                               <para>You could use the following commands during the normal install process:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6\r
+       make STAFF_CLIENT_STAMP_ID=my_test_stamp install</userinput>\r
+</screen>\r
+                               <para>You can also manually build the Staff Client in the Staff Client\r
+                               source directory with a different <envar>STAMP_ID</envar>.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+                               execute the following commands to build the Staff Client:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make STAFF_CLIENT_STAMP_ID=my_test_stamp  build</userinput>\r
+</screen>\r
+                       </simplesect>\r
+               </section>\r
+               <section>\r
+                       <title>Advanced Build Options</title>\r
+                       <indexterm>\r
+                               <primary>staff client</primary>\r
+                               <secondary>building</secondary>\r
+                               <tertiary>advanced build options</tertiary>\r
+                       </indexterm>\r
+                       <para>In addition to the basic options listed above, there are a number of advanced\r
+                       options for building the Staff Client. Most are target names for the\r
+                       <command>make</command> utility and require that you build the Staff Client from the\r
+                       <literal>staff_client</literal> directory. See the following table for a list of\r
+                       possible <command>make</command> target keywords:</para>\r
+                       <table>\r
+                               <title>Keywords For Advanced Build Options</title>\r
+                               <?dbfo keep-together="always" ?>\r
+                               <tgroup align="left" cols="2" colsep="1" rowsep="1">\r
+                                       <colspec colname="keyword" colnum="1" colwidth="1.0*"/>\r
+                                       <colspec colname="description" colnum="2" colwidth="3.0*"/>\r
+                                       <thead>\r
+                                               <row>\r
+                                                       <entry>Keyword</entry>\r
+                                                       <entry>Description</entry>\r
+                                               </row>\r
+                                       </thead>\r
+                                       <tbody>\r
+                                               <row>\r
+                                                       <entry>clients</entry>\r
+                                                       <entry>Runs "make win-client", "make linux-client", and "make\r
+                                                       generic-client" individually</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>client_dir</entry>\r
+                                                       <entry>Builds a client directory from the build directory, without\r
+                                                       doing a rebuild. The same as "copy everything but\r
+                                                       server/".</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>client_app</entry>\r
+                                                       <entry>Prerequisite "client_dir"; removes "install.rdf" from\r
+                                                       client directory so an APP bundle can't be installed as an\r
+                                                       extension</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>client_ext</entry>\r
+                                                       <entry>Prerequisite "client_dir"; remove "application.ini",\r
+                                                       "autoupdate.js", "standalone_xul_app.js" from client directory so\r
+                                                       an extension won't break Firefox</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>extension</entry>\r
+                                                       <entry>Prerequisite "client_ext"; rewritten to use "client_ext"</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>generic-client</entry>\r
+                                                       <entry>Prerequisite "client_app"; makes an XPI file suitable for\r
+                                                       use with "xulrunner --install-app""</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>win-xulrunner</entry>\r
+                                                       <entry>Prerequisite "client_app"; adds Windows xulrunner to client build</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>linux-xulrunner</entry>\r
+                                                       <entry>Prerequisite "client_app"; adds Linux xulrunner to client build</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>win-client</entry>\r
+                                                       <entry>Prerequisite "win-xulrunner"; builds "setup exe" (requires\r
+                                                       that "nsis" package be installed, will add options for automatic\r
+                                                       update if configured and developer options if client build was a\r
+                                                       "make devbuild")</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>linux-client</entry>\r
+                                                       <entry>Prerequisite "linux_xulrunner"; builds a "tar.bz2" bundle\r
+                                                       of the Linux client</entry>\r
+                                               </row>\r
+                                               <row>\r
+                                                       <entry>[generic-|win-|linux-|extension-]updates[-client]</entry>\r
+                                                       <entry>Calls external/make_updates.sh to build full and partial\r
+                                                       updates generic/win/linux/extension prefix limit to that\r
+                                                       distribution; Adding <option>-client</option> builds clients and\r
+                                                       copies them to a subdirectory of the \r
+                                                       <filename class="directory">updates</filename> directory as well;\r
+                                                       <option>extension-updates-client</option> doesn't exist.</entry>\r
+                                               </row>\r
+                                       </tbody>\r
+                               </tgroup>\r
+                       </table>\r
+                       <para>Following are descriptions of other special build options:</para>\r
+                       <simplesect>\r
+                               <title>Developer Build</title>\r
+                               <para>You can create a so-called <emphasis>developer build</emphasis>\r
+                               of the Staff Client by substituting <option>devbuild</option> for\r
+                               <option>build</option> when running <command>make</command> from the\r
+                               <literal>staff_client</literal> directory. The build will contain an\r
+                               extra configuration file that enables some developer options.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, run\r
+                               the following commands from the Staff Client source directory:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make devbuild</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Compressed Javascript</title>\r
+                               <para>You can execute the Google <systemitem class="resource">Closure Compiler</systemitem>\r
+                               utility to automatically review and compress Javascript code after the build\r
+                               process completes, by substituting <option>compress-javascript</option> for\r
+                               <option>build</option> when running <command>make</command>.\r
+                               For more information on the Google Closure Compiler, see \r
+                               <ulink url="http://code.google.com/closure/compiler/">\r
+                               http://code.google.com/closure/compiler</ulink>.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, run\r
+                               the following commands from the Staff Client source directory:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make compress-javascript</userinput>\r
+</screen>\r
+                               <para>You can also combine Javascript review and compression, and also perform a\r
+                               <emphasis>developer build</emphasis>.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, run \r
+                               the following <command>make</command> command from the Staff Client source directory\r
+                               (the order of options is important):</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make  devbuild  compress-javascript</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect xml:id="staffclientinstallation-autoupdatehost">\r
+                               <title>Automatic Update Host</title>\r
+                               <para>You can override the host used to check for automatic Staff Client updates\r
+                               by specifying the <option>AUTOUPDATE_HOST</option> option.</para>\r
+                               <para>You could use the following commands during the normal install process:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6\r
+       make AUTOUPDATE_HOST=localhost install</userinput>\r
+</screen>\r
+                               <para>You can manually build the Staff Client in the Staff Client\r
+                               source directory and set <option>AUTOUPDATE_HOST</option> to enable automatic\r
+                               update checking.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+                               execute the following commands to build the Staff Client:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make AUTOUPDATE_HOST=localhost build</userinput>\r
+</screen>\r
+                               <para>For more information on Automatic Updates, see\r
+                               <xref linkend="staffclientinstallation-autoupdate"/>.</para>\r
+                       </simplesect>\r
+               </section>\r
+               <section>\r
+                       <title>Installing and Activating a Manually Built Staff Client</title>\r
+                       <para>The Staff Client is automatically built, installed and activated as part of the\r
+                       normal <command>make<option>install</option></command> process for Evergreen\r
+                       server-side software. However, if you manually build the Staff Client from the\r
+                       <literal>staff_client</literal> directory, then you need to take additional steps to\r
+                       properly install and activate it. You also have the option of installing the Staff\r
+                       Client on the same machine it was built on, or on a different machine.</para>\r
+                       <para>Assuming you have already built the Staff Client, and that your installation is\r
+                       in the directory <filename class="directory">/openils/var/web/xul</filename>, as the\r
+                       <systemitem class="username">opensrf</systemitem> user execute the following\r
+                       commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       mkdir -p "/openils/var/web/xul/$(cat build/BUILD_ID)"\r
+       cp -R build/server "/openils/var/web/xul/$(cat build/BUILD_ID)"</userinput>\r
+</screen>\r
+               </section>\r
+               <section>\r
+                       <title>Packaging the Staff Client</title>\r
+                       <para>Once you have built the Staff Client, you can create several forms of special client\r
+                       packages by using a modified <command>make</command> command in the <literal>staff_client</literal>\r
+                       directory.</para>\r
+                       <simplesect>\r
+                               <title>Packaging a Generic Client</title>\r
+                               <para>This build creates a Staff Client packaged as an XPI file suitable for use with\r
+                               the <option>--install-app</option> parameter of <application>XULrunner</application>.\r
+                               It requires that you already have the <systemitem>zip</systemitem> utility\r
+                               installed on your system.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, execute\r
+                               the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make generic-client</userinput>\r
+</screen>\r
+                               <para>The output file <filename>evergreen_staff_client.xpi</filename> will be created.</para>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Packaging a <systemitem class="osname">Windows</systemitem> Client</title>\r
+                               <para>This build creates a Staff Client packaged as a \r
+                               <systemitem class="osname">Windows</systemitem> executable. It requires that\r
+                               you already have the <application>unzip</application> utility installed on\r
+                               your system. It also requires that you install \r
+                               <ulink url="http://nsis.sourceforge.net/">NSIS (Nullsoft Scriptable Install System)</ulink>,\r
+                               a professional open source utility package used to create \r
+                               <systemitem class="osname">Windows</systemitem> installers (the\r
+                               <application>"makensis"</application> utility is installed as part of the\r
+                               <application>"nsis"</application> package). You should use Version 2.45 or\r
+                               later.</para>\r
+                               <para>If you wish for the Staff Client to have a link icon/tray icon by\r
+                               default, you may wish to provide a pre-modified\r
+                               <application>xulrunner-stub.exe</application>. Place it in the Staff Client\r
+                               source directory and <command>make</command> will automatically use it instead\r
+                               of the one that comes with the downloaded <application>XULrunner</application>\r
+                               release. The version of <application>xulrunner-stub.exe</application> need not\r
+                               match exactly.</para>\r
+                               <para>You can also use a tool such as \r
+                               <ulink url="http://www.angusj.com/resourcehacker/">Resource Hacker</ulink>\r
+                               to embed icons. <application>Resource Hacker</application> is an open-source\r
+                               utility used to modify resources within 32-bit\r
+                               <systemitem class="osname">Windows</systemitem> executables. \r
+                               Some useful icon ID strings include the following:</para>\r
+                               <table>\r
+                                       <?dbfo keep-together="always" ?>\r
+                                       <title>Icon IDs for Packaging a Windows Client</title>\r
+                                       <tgroup align="left" cols="2" colsep="1" rowsep="1">\r
+                                               <colspec colname="keyword" colnum="1" colwidth="1.0*"/>\r
+                                               <colspec colname="icon" colnum="2" colwidth="1.0*"/>\r
+                                               <tbody>\r
+                                                       <row>\r
+                                                               <entry>IDI_APPICON</entry>\r
+                                                               <entry>Tray icon</entry>\r
+                                                       </row>\r
+                                                       <row>\r
+                                                               <entry>32512</entry>\r
+                                                               <entry>Default window icon</entry>\r
+                                                       </row>\r
+                                               </tbody>\r
+                                       </tgroup>\r
+                               </table>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user\r
+                               execute the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make win-client</userinput>\r
+</screen>\r
+                               <para>The output file <filename>evergreen_staff_client_setup.exe</filename> will be created.</para>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Packaging a Linux Client</title>\r
+                               <para>This build creates a Staff Client packaged as a compressed\r
+                               <literal>tar</literal> archive file with <application>XULrunner</application>\r
+                               already bundled with it. It requires that you already have the\r
+                               <application>bzip2</application> utility installed on your system.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, \r
+                               execute the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make linux-client</userinput>\r
+</screen>\r
+                               <para>The output file <filename>evergreen_staff_client.tar.bz2</filename> will be created.</para>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Packaging a <application>Firefox</application> Extension</title>\r
+                               <para>This build creates a Staff Client packaged as a <application>Firefox</application>\r
+                               extension. It requires that you already have the <systemitem>zip</systemitem>\r
+                               utility installed on your system.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+                               execute the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make extension</userinput>\r
+</screen>\r
+                               <para>The output file <filename>evergreen.xpi</filename> will be created.</para>\r
+                       </simplesect>\r
+               </section>\r
+               <section xml:id="staffclientinstallation-autoupdate">\r
+                       <title>Staff Client Automatic Updates</title>\r
+                       <indexterm>\r
+                               <primary>staff client</primary>\r
+                               <secondary>automatic updates</secondary>\r
+                       </indexterm>\r
+                       <para>It is possible to set up support for automatic Staff Client updates, either during\r
+                       the normal Evergreen server-side build process, or by manually building the Staff Client\r
+                       with certain special options.</para>\r
+                       <warning>\r
+                               <para>Automatic update server certificate requirements are more strict than\r
+                               normal server requirements. <application>Firefox</application> and\r
+                               <application>XULrunner</application> will both ignore any automatic update\r
+                               server that is not validated by a trusted certificate authority. Servers with\r
+                               exceptions added to force the Staff Client to accept them <emphasis>WILL NOT\r
+                               WORK</emphasis>.</para>\r
+                               <para>In addition, automatic updates have special requirements for the file\r
+                               <filename>update.rdf</filename>:</para>\r
+                               <orderedlist>\r
+                                       <listitem>It must be served from an SSL server, or</listitem>\r
+                                       <listitem>It must be signed with the  <ulink url="https://developer.mozilla.org/en/McCoy">\r
+                                       https://developer.mozilla.org/en/McCoy</ulink> tool.</listitem>\r
+                               </orderedlist>\r
+                               <para>You can pre-install the signing key into the file\r
+                               <filename>install.rdf</filename> directly, or install it into a copy as\r
+                               <filename>install.mccoy.rdf</filename>. If the latter exists it will be copied\r
+                               into the build instead of the original file\r
+                               <filename>install.rdf</filename>.</para>\r
+                       </warning>\r
+                       <simplesect>\r
+                               <title>Autoupdate Host</title>\r
+                               <para>You can manually set the name of the automatic update host. If you do\r
+                               not set the name then, by default, the Staff Client will not include an\r
+                               automatic update preference. You can set the autoupdate host name as\r
+                               follows:</para>\r
+                               <itemizedlist>\r
+                                       <listitem>\r
+                                               <para>At configuration time during the normal <emphasis>make install</emphasis>\r
+                                               process for Evergreen server-side software.</para>\r
+                                               <para>You can do this when you first configure the Evergreen server-side \r
+                                               software (see <xref linkend="serversideinstallation-configure"/>). \r
+                                               As the <systemitem class="username">opensrf</systemitem> user, execute \r
+                                               the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6\r
+       ./configure --prefix=/openils --sysconfdir=/openils/conf --with-updateshost=hostname\r
+       make</userinput>\r
+</screen>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para>During a manual Staff Client build process.</para>\r
+                                               <para>You can override the variable\r
+                                               <envar>AUTOUPDATE_HOST=hostname</envar> and manually build the\r
+                                               Staff Client from the <literal>staff_client</literal>\r
+                                               directory (see <xref linkend="staffclientinstallation-autoupdatehost"/> \r
+                                               for details). If you specify only a bare hostname (for example, \r
+                                               <systemitem class="domainname">example.com</systemitem>) then\r
+                                               the Staff Client will automatically use the secure URL \r
+                                               <systemitem class="domainname">https://example.com</systemitem>.\r
+                                               If you wish to use a non-https URL, then you must explicitly \r
+                                               specify the full URL (for example, \r
+                                               <systemitem class="domainname">http://example.com</systemitem>).</para>\r
+                                               <para>As the <systemitem class="username">opensrf</systemitem> user,\r
+                                               execute the following commands to build the Staff Client (remember to\r
+                                               replace <emphasis>SOME_URL</emphasis> with an appropriate value):</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make AUTOUPDATE_HOST=http://SOME_URL build</userinput>\r
+</screen>\r
+                                       </listitem>\r
+                               </itemizedlist>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Building Updates</title>\r
+                               <indexterm>\r
+                                       <primary>staff client</primary>\r
+                                       <secondary>automatic updates</secondary>\r
+                                       <tertiary>building</tertiary>\r
+                               </indexterm>\r
+                               <para>Similar to building clients, you can use the targets\r
+                               <option>generic-updates</option>, <option>win-updates</option>,\r
+                               <option>linux-updates</option>, and <option>extension-updates</option>\r
+                               individually with <command>make</command> to build the update files for the\r
+                               Staff Client. To build all the targets at once, simply use the target\r
+                               <option>updates</option>.</para>\r
+                               <para>A full update will be built for each specified target (or for all if you\r
+                               use the target <option>updates</option>). For all but extensions any previous\r
+                               full updates (archived by default in the directory \r
+                               <filename class="directory">/openils/var/updates/archives</filename>) will be\r
+                               used to make partial updates. Partial updates tend to be much smaller and will\r
+                               thus download more quickly, but if something goes wrong with a partial update\r
+                               the full update will be used as a fallback. Extensions do not currently support\r
+                               partial updates.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, change\r
+                               directory to the Staff Client source directory, then execute the following\r
+                               commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client</userinput>\r
+</screen>\r
+                               <para>Command to build all updates at once:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       make updates</userinput>\r
+</screen>\r
+                               <para>commands to build updates individually:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       make generic-updates\r
+       make win-updates\r
+       make linux-updates\r
+       make extension-updates</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Building updates with clients</title>\r
+                               <indexterm>\r
+                                       <primary>staff client</primary>\r
+                                       <secondary>automatic updates</secondary>\r
+                                       <tertiary>building with clients</tertiary>\r
+                               </indexterm>\r
+                               <para>To save time and effort you can build updates and manual download\r
+                               clients at the same time by adding the phrase <literal>"-client"</literal> to each\r
+                               target name (for example, you could specify <option>updates-client</option> to build \r
+                               all the targets at once, or you could specify <option>win-updates-client</option>\r
+                               to build updates individually). This process will not work for the option\r
+                               <option>extension-updates</option>.</para>\r
+                               <para>The clients will be installed alongside the updates and listed on the\r
+                               <filename>manualupdate.html</filename> page, instead of being left in the\r
+                               <literal>staff_client</literal> directory.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, execute\r
+                               one of the following commands:</para>\r
+                               <para>To build all updates at once:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make updates-client</userinput>\r
+</screen>\r
+                               <para>To build updates individually:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make generic-updates-client\r
+       make win-updates-client\r
+       make linux-updates-client</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title>Activating the Update Server</title>\r
+                               <indexterm>\r
+                                       <primary>staff client</primary>\r
+                                       <secondary>automatic updates</secondary>\r
+                                       <tertiary>activating the update server</tertiary>\r
+                               </indexterm>\r
+                               <para>This section reviews scripts associated with the update server, and\r
+                               requires some final adjustments to file permissions.</para>\r
+                               <para>The Apache example configuration creates an <literal>updates</literal>\r
+                               directory that, by default, points to the directory \r
+                               <filename class="directory">/openils/var/updates/pub</filename>. This\r
+                               directory contains one HTML file and several specially-named script files.</para>\r
+                               <para>The <filename>updatedetails.html</filename> file is the fallback web\r
+                               page for the update details. The <filename>check</filename> script is used for\r
+                               <application>XULrunner</application> updates. The\r
+                               <filename>update.rdf</filename> script is used for extension updates. \r
+                               The <filename>manualupdate.html</filename> file checks for clients to provide\r
+                               download links when automatic updates have failed and uses the download script\r
+                               to force a download of the generic client XPI (compared to\r
+                               <application>Firefox</application> trying to install it as an\r
+                               extension).</para>\r
+                               <para>To change the permissions for the scripts\r
+                               <filename>check</filename>, <filename>download</filename>,\r
+                               <filename>manualupdate.html</filename>, and\r
+                               <filename>update.rdf</filename>, as the root user execute the following\r
+                               commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the root user:\r
+       cd /openils/var/updates/pub\r
+       chmod +x  check  download  manualupdate.html  update.rdf</userinput>\r
+</screen>\r
+                       </simplesect>\r
+               </section>\r
+               <section>\r
+                       <title>Other tips</title>\r
+                       <simplesect xml:id="staffclientinstallation-othertips">\r
+                               <title>Multiple workstations on one install</title>\r
+                               <para>Multiple workstation registrations for the same server can be accomplished\r
+                               with a single Staff Client install by using multiple profiles. When running\r
+                               <application>XULrunner</application> you can specify the option\r
+                               <literal>"-profilemanager"</literal> or <literal>"-P"</literal> (uppercase "P")\r
+                               to force the Profile Manager to start. Unchecking the <literal>"Don't ask at startup"</literal>\r
+                               option will make this the default.</para>\r
+                               <para>Once you have opened the Profile Manager you can create additional\r
+                               profiles, one for each workstation you wish to register. You may need to install\r
+                               SSL exceptions for each profile.</para>\r
+                               <para>When building any of the targets <option>win-client</option>,\r
+                               <option>win-updates-client</option>, or <option>updates-client</option>, you can\r
+                               specify <option>NSIS_EXTRAOPTS=-DPROFILES</option> to add an option\r
+                               <guimenuitem>"Evergreen Staff Client Profile Manager"</guimenuitem> to the\r
+                               start menu.</para>\r
+                               <para>As the <systemitem class="username">opensrf</systemitem> user, \r
+                               execute the following commands:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client\r
+       make NSIS_EXTRAOPTS=-DPROFILES win-client</userinput>\r
+</screen>\r
+                       </simplesect>\r
+                       <simplesect>\r
+                               <title> Multiple Staff Clients</title>\r
+                               <para>It may be confusing if you are not careful, but you can log in to\r
+                               multiple Evergreen servers at the same time, or a single Evergreen server\r
+                               multiple times. In either case you will need to create an additional profile for\r
+                               each additional server or workstation you want to log in as (see the previous\r
+                               tip in <xref linkend="staffclientinstallation-othertips"/>).</para>\r
+                               <para>Once you have created the profiles, run\r
+                               <application>XULrunner</application> with the option <option>-no-remote</option>\r
+                               (in addition to <option>"-profilemanger"</option> or <option>"-P"</option> if\r
+                               needed). Instead of <application>XULrunner</application> opening a new login\r
+                               window on your existing session it will start a new session instead, which can\r
+                               then be logged in to a different server or workstation ID.</para>\r
+                       </simplesect>\r
+               </section>\r
+       </section>\r
+       <section xml:id="staffclientinstallation-running-staffclient">\r
+               <title>Running the Staff Client</title>\r
+               <indexterm>\r
+                       <primary>staff client</primary>\r
+                       <secondary>running</secondary>\r
+                       <tertiary>linux</tertiary>\r
+               </indexterm>\r
+               <para>You can run the Staff Client on a Linux system by using the\r
+               <application>XULrunner</application> application (installed automatically and by default\r
+               with <application>Firefox</application> <literal>Version 3.0</literal> and later on \r
+               <systemitem class="osname">Ubuntu</systemitem> and\r
+               <systemitem class="osname">Debian</systemitem> distributions).</para>\r
+               <para>For example, if the source files for the Evergreen installation are in the directory \r
+               <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.6/</filename> you can start the \r
+               Staff Client as shown in the following example:</para>\r
+<screen>\r
+       <userinput>\r
+       # as the opensrf user:\r
+       cd /home/opensrf/Evergreen-ILS-1.6.1.6/Open-ILS/xul/staff_client/build\r
+       xulrunner application.ini</userinput>\r
+</screen>\r
+               <section xml:id="staffclientinstallation-workstationnames">\r
+                       <title>Assigning Workstation Names</title>\r
+                       <indexterm>\r
+                               <primary>staff client</primary>\r
+                               <secondary>assigning workstation names</secondary>\r
+                       </indexterm>\r
+                       <para>The Staff Client must be assigned to a library and given a unique name before it\r
+                       will connect fully to the Evergreen server. The only restriction is that the workstation's\r
+                       name must be unique within the assigned library. Make sure to select a workstation name\r
+                       that you will remember later, one that reflects the role, purpose, and/or location of a\r
+                       particular computer. These names will come up later in statistical reporting, and can also\r
+                       be handy when troubleshooting.</para>\r
+                       <mediaobject>\r
+                               <alt>\r
+                                       <phrase>Example of unconfigured Staff Client</phrase>\r
+                               </alt>\r
+                               <imageobject>\r
+                                       <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-1.png" format="PNG" scalefit="1" width="60%"/>\r
+                               </imageobject>\r
+                       </mediaobject>\r
+                       <para>In order to assign a workstation a name, a user with appropriate\r
+                       permissions must login to the Staff Client. In PINES, the local system\r
+                       administrator (OPSM) has the ability to assign workstation names in their\r
+                       library system. Library managers (LIBM's) have the ability within their\r
+                       branch. To assign a workstation a name, login to the system. You will be\r
+                       prompted to assign the workstation a library and a name:</para>\r
+                       <mediaobject>\r
+                               <alt>\r
+                                       <phrase>Example of configured Staff Client</phrase>\r
+                               </alt>\r
+                               <imageobject>\r
+                                       <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-2.png" format="PNG" scalefit="1" width="60%"/>\r
+                               </imageobject>\r
+                       </mediaobject>\r
+                       <para>Select the library this workstation physically operates in from the drop\r
+                       down menu. In this example, we have selected "MGRL-MA". Type in a friendly name\r
+                       for the workstation. In this example, we are installing the Staff Client on the\r
+                       director's personal system, and have named it as such. Then click\r
+                       <guibutton>'Register'</guibutton>.</para>\r
+                       <para>Once you have registered your workstation\r
+                       with the server, your screen will look like this:</para>\r
+                       <mediaobject>\r
+                               <alt>\r
+                                       <phrase>Example of registered Staff Client</phrase>\r
+                               </alt>\r
+                               <imageobject>\r
+                                       <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-3.png" format="PNG" scalefit="1" width="60%"/>\r
+                               </imageobject>\r
+                       </mediaobject>\r
+                       <para>You are now ready to log into the Staff Client for the first time. Type in\r
+                       your password again, and click <guibutton>'Login'</guibutton>.</para>\r
+               </section>\r
+               <section xml:id="staffclientinstallation-proxy">\r
+                       <title>Running the Staff Client Over An <systemitem class="protocal">SSH</systemitem> Tunnel</title>\r
+                       <indexterm>\r
+                               <primary>staff client</primary>\r
+                               <secondary>running through an SSH tunnel</secondary>\r
+                       </indexterm>\r
+                       <para>You can configure the Staff Client to communicate with the Evergreen server over\r
+                       an <systemitem class="protocal">SSH</systemitem> tunnel using a SOCKS 5 proxy\r
+                       server. There are several reasons for sending network traffic for the Staff Client\r
+                       through an <systemitem class="protocal">SSH</systemitem> proxy:</para>\r
+                       <itemizedlist>\r
+                               <listitem>\r
+                                       <para>Firewalls may prevent you from reaching the Evergreen\r
+                                       server. This may happen when you are connecting the Staff\r
+                                       Client to a test server that should not be available\r
+                                       generally, or it may be the result of network design\r
+                                       priorities other than ease of use.</para>\r
+                               </listitem>\r
+                               <listitem>\r
+                                       <para>You may wish to improve security in situations where\r
+                                       Staff Client traffic may be susceptible to network\r
+                                       eavesdropping. This is especially true when staff machines\r
+                                       connect via wireless links to the network.</para>\r
+                               </listitem>\r
+                       </itemizedlist>\r
+                       <section>\r
+                               <title>Setting Up an <systemitem class="protocal">SSH</systemitem> Tunnel</title>\r
+                               <para>You will need a server that allows you to log in via \r
+                               <systemitem class="protocal">SSH</systemitem> and has network access to the \r
+                               Evergreen server you want to reach. You will use your username and password\r
+                               for that <systemitem class="protocal">SSH</systemitem> server to set up a\r
+                               tunnel.</para>\r
+                               <para>For <systemitem class="osname">Windows</systemitem> users, one good\r
+                               solution is the open-source utility\r
+                               <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</ulink>,\r
+                               a free <systemitem class="protocal">telnet/SSH</systemitem> client.\r
+                               Following are instructions for setting up an <application>SSH</application> \r
+                               session using the <application>PuTTY</application> utility:</para>\r
+                               <mediaobject>\r
+                                       <alt>\r
+                                               <phrase>Setting up an <systemitem class="protocal">SSH</systemitem>\r
+                                               tunnel in <application>PuTTY</application></phrase>\r
+                                       </alt>\r
+                                       <imageobject>\r
+                                               <imagedata fileref="../media/staffclientinstallation-proxy-putty-1.png" format="PNG" scalefit="1" width="60%"/>\r
+                                       </imageobject>\r
+                               </mediaobject>\r
+                               <procedure>\r
+                                       <step>\r
+                                               <para>Using the menu on the left, find the section:</para>\r
+                                               <para>\r
+                                                       <menuchoice>\r
+                                                               <guimenu>Connection</guimenu>\r
+                                                               <guimenuitem>SSH</guimenuitem>\r
+                                                               <guimenuitem>Tunnels</guimenuitem>\r
+                                                       </menuchoice>\r
+                                               </para>\r
+                                       </step>\r
+                                       <step>\r
+                                               <para>In the section on the right labeled <literal>"Source\r
+                                               port"</literal>, enter <literal>9999</literal>.</para>\r
+                                       </step>\r
+                                       <step>\r
+                                               <para>Set the checkbox <literal>"Dynamic"</literal>. Do not\r
+                                               enter anything in the <literal>"Destination"</literal> text\r
+                                               entry box.</para>\r
+                                       </step>\r
+                                       <step>\r
+                                               <para>Click <guibutton>'Add'</guibutton> and notice that\r
+                                               <literal>"D9999"</literal> now appears in the section\r
+                                               labeled <literal>"Forwarded ports"</literal>.</para>\r
+                                       </step>\r
+                                       <step>\r
+                                               <para>Use the menu on the left, find the\r
+                                               <literal>"Session"</literal> section, then enter the host name\r
+                                               of the <systemitem class="protocal">SSH</systemitem>\r
+                                               server.</para>\r
+                                       </step>\r
+                                       <step>\r
+                                               <para>A pop-up window will open to allow you to enter your\r
+                                               username and password. Once you are logged in, the tunnel is\r
+                                               open.</para>\r
+                                       </step>\r
+                               </procedure>\r
+                               <para>See <ulink url="http://inside.mines.edu/~gmurray/HowTo/sshNotes.html">How to set up\r
+                               <systemitem class="protocal">SSH</systemitem> (for the beginner)</ulink> for information on\r
+                               setting up <systemitem class="protocal">SSH</systemitem> for other client operating\r
+                               systems.</para>\r
+                       </section>\r
+                       <section>\r
+                               <title>Configuring the Staff Client to Use the <systemitem class="protocal">SSH</systemitem> Tunnel</title>\r
+                               <para>In order to tell the Staff Client that all traffic should be sent\r
+                               through the <systemitem class="protocal">SSH</systemitem> tunnel just configured,\r
+                               you must find edit the file <filename>all.js</filename>, usually located at\r
+                               <filename>C:\Program Files\Evergreen Staff Client\greprefs\all.js</filename>\r
+                                on a  <systemitem class="osname">Windows</systemitem> system.\r
+                               Search this file for the word <literal>socks</literal> to find the appropriate\r
+                               section for the following changes.</para>\r
+                               <mediaobject>\r
+                                       <alt>\r
+                                               <phrase>The SOCKS section of "all.js" before changes</phrase>\r
+                                       </alt>\r
+                                       <imageobject>\r
+                                               <imagedata fileref="../media/staffclientinstallation-proxy-socks-1.png" format="PNG" scalefit="1" width="70%"/>\r
+                                       </imageobject>\r
+                               </mediaobject>\r
+                               <para>Make the following changes:</para>\r
+                               <itemizedlist>\r
+                                       <listitem>\r
+                                               <para>Change the value of <literal>network.proxy.socks</literal> \r
+                                               from <literal>""</literal> to <literal>localhost</literal>.</para>\r
+                                       </listitem>\r
+                                       <listitem>\r
+                                               <para>Change the value of <literal>network.proxy.socks_port</literal>\r
+                                               from <literal>0</literal> to <literal>9999</literal>.</para>\r
+                                       </listitem>\r
+                               </itemizedlist>\r
+                               <mediaobject>\r
+                                       <alt>\r
+                                               <phrase>The SOCKS section of "all.js" after changes</phrase>\r
+                                       </alt>\r
+                                       <imageobject>\r
+                                               <imagedata fileref="../media/staffclientinstallation-proxy-socks-2.png" format="PNG" scalefit="1" width="70%"/>\r
+                                       </imageobject>\r
+                               </mediaobject>\r
+                               <para>If everything is working correctly, you should now be able to run \r
+                               the Staff Client and all its data will be sent encrypted through the \r
+                               <systemitem class="protocal">SSH</systemitem> tunnel you have just configured.</para>\r
+                       </section>\r
+               </section>\r
+               <section>\r
+                       <title>Navigating a Tabbed Interface</title>\r
+                       <para>Like many popular current web browsers and other applications, the Staff Client\r
+                       uses a "tabbed" interface. Tabs allow you to have several pages open at the same time\r
+                       in a single window. This is easier to manage on your computer screen than multiple\r
+                       windows, since you can easily switch between tabs in the same window.</para>\r
+                       <mediaobject>\r
+                               <alt>\r
+                                       <phrase>Tabs in the Staff Client window</phrase>\r
+                               </alt>\r
+                               <imageobject>\r
+                                       <imagedata fileref="../media/staffclientinstallation-tabbed-1.png" format="PNG" scalefit="1" width="70%"/>\r
+                               </imageobject>\r
+                       </mediaobject>\r
+                       <para>The "tabs" appear below the menu bar in the Staff Client with a descriptive\r
+                       title. Simply select a tab to bring it to the front and view the page displayed in the\r
+                       tab. You can use tabs to have access to multiple things all at the same time: patron\r
+                       records and searches, bibliographic records and searches, circulation or cataloging\r
+                       interfaces - anything at all in the Staff Client.</para>\r
+                       <itemizedlist>\r
+                               <listitem>Create a new tab by pressing\r
+                               <keycombo>\r
+                                       <keycap>Ctrl</keycap>\r
+                                       <keycap>T</keycap>\r
+                               </keycombo>\r
+                               on the keyboard or selecting:\r
+                               <menuchoice>\r
+                                       <guimenu>File</guimenu>\r
+                                       <guimenuitem>New Tab</guimenuitem>\r
+                               </menuchoice>\r
+                               from the menu.</listitem>\r
+                               <listitem>Close a tab by pressing\r
+                               <keycombo>\r
+                                       <keycap>Ctrl</keycap>\r
+                                       <keycap>W</keycap>\r
+                               </keycombo> on the keyboard or selecting\r
+                               <menuchoice>\r
+                                       <guimenu>File</guimenu>\r
+                                       <guimenuitem>Close Tab</guimenuitem>\r
+                               </menuchoice>\r
+                               from the menu.</listitem>\r
+                               <listitem>Switch tabs by pressing \r
+                               <keycombo>\r
+                                       <keycap>Ctrl</keycap>\r
+                                       <keycap>Tab</keycap>\r
+                               </keycombo>\r
+                               on the keyboard or selecting the tab in the tab bar.</listitem>\r
+                       </itemizedlist>\r
+               </section>\r
+       </section>\r
+</chapter>\r