]> git.evergreen-ils.org Git - working/Evergreen.git/blob - 1.6/admin/staffclientinstallation.xml
Upgrading evergreen reflect 1.6.2 updates.
[working/Evergreen.git] / 1.6 / admin / staffclientinstallation.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3         <info>
4                 <title>Installation of Evergreen Staff Client Software</title>
5                 <abstract>
6                         <para>This section describes installation of the Evergreen Staff Client software.</para>
7                 </abstract>
8         </info>
9         <section xml:id="staffclientinstallation-installing-staffclient">
10                 <title>Installing the Staff Client</title>
11                 <indexterm>
12                         <primary>staff client</primary>
13                         <secondary>installing</secondary>
14                 </indexterm>
15                 <section xml:id="staffclientinstallation-installing-prebuilt">
16                         <title>Installing a Pre-Built Staff Client</title>
17                         <para>A pre-built Staff Client is available for <systemitem class="osname">Windows</systemitem>,
18                         <systemitem class="osname">Mac</systemitem> or Linux systems. Installing the Staff Client in
19                         each of these environments is described in the following sections.</para>
20                         <section xml:id="staffclientinstallation-installing-windows">
21                                 <title>Installing on <systemitem class="osname">Windows</systemitem></title>
22                                 <indexterm>
23                                         <primary>staff client</primary>
24                                         <secondary>installing</secondary>
25                                         <tertiary>Windows</tertiary>
26                                 </indexterm>
27                                 <para>In this section we describe the process of installing the Staff Client on the
28                                 <systemitem class="osname">Microsoft Windows</systemitem> operating system.</para>
29                                 <para>Visit the downloads section of the Evergreen website at
30                                 <ulink url="http://www.evergreen-ils.org/downloads.php">http://www.evergreen-ils.org/downloads.php</ulink>
31                                 and find the standard <systemitem class="osname">Microsoft Windows</systemitem> Installer
32                                 that contains the current version of the Staff Client. Download the Installer, then run
33                                 it. A screen that looks similar to this should appear:</para>
34                                 <mediaobject>
35                                         <alt>
36                                                 <phrase>Running the Staff Client installer</phrase>
37                                         </alt>
38                                         <imageobject>
39                                                 <imagedata fileref="../media/staffclientinstallation-staffclient-1.png" format="PNG" scalefit="1" width="60%"/>
40                                         </imageobject>
41                                 </mediaobject>
42                                 <para>Click <guibutton>'Next'</guibutton> to continue through the guided install
43                                 process. The Install Wizard will ask you to agree to the end-user license, ask you where
44                                 to install the software, ask about where to place icons, and then will automatically
45                                 install the software on your workstation.</para>
46                                 <para>When you run the Staff Client for the first time, a screen similar to this should
47                                 appear:</para>
48                                 <mediaobject>
49                                         <alt>
50                                                 <phrase>Running the Staff Client for the first time</phrase>
51                                         </alt>
52                                         <imageobject>
53                                                 <imagedata fileref="../media/staffclientinstallation-staffclient-2.png" format="PNG" scalefit="1" width="60%"/>
54                                         </imageobject>
55                                 </mediaobject>
56                                 <para>First, add the name of your Evergreen server to the field 
57                                 <emphasis role="bold">Hostname</emphasis> in the <emphasis role="bold">Server</emphasis>
58                                 section. For example, the PINES demo system is 
59                                 <ulink url="http://demo.gapines.org">http://demo.gapines.org</ulink>. 
60                                 After adding the server name, click <guibutton>'Re-Test Server'</guibutton>.</para>
61                                 <para>Because this is the initial run of the Staff Client, you will see a warning in the
62                                 upper-right saying: <emphasis role="bold">Not yet configured for the specified
63                                 server</emphasis>. The first thing you must do to the Staff Client on every workstation
64                                 is to assign it a workstation name. This is covered in 
65                                 <xref linkend="staffclientinstallation-workstationnames"/>.</para>
66                         </section>
67                         <section xml:id="staffclientinstallation-installing-macos">
68                                 <title>Installing on <systemitem class="osname">Mac OS</systemitem></title>
69                                 <indexterm>
70                                         <primary>staff client</primary>
71                                         <secondary>installing</secondary>
72                                         <tertiary>Mac OS</tertiary>
73                                 </indexterm>
74                                 <para>This section describes <systemitem class="osname">Mac OS</systemitem>
75                                 packages and related versions of <application>XULrunner</application> that can
76                                 be used to run the Staff Client in a <systemitem class="osname">Mac OS</systemitem>
77                                 environment.</para>
78                                 <simplesect>
79                                         <title>Evergreen Version 1.2.3.0</title>
80                                         <orderedlist>
81                                                 <listitem>
82                                                         <para>A <systemitem class="osname">Mac OS</systemitem> package that
83                                                         contains an early version of the Staff Client (version 1.2.3.0) for use
84                                                         with <application>XULrunner</application> is available. You can find
85                                                         current releases of <application>XULrunner</application> here:
86                                                         <ulink url="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases">
87                                                         http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases</ulink> .
88                                                         Download and install the latest version. You can find further information 
89                                                         about <application>XULrunner</application> here: 
90                                                         <ulink url="https://developer.mozilla.org/en/xulrunner">
91                                                         https://developer.mozilla.org/en/xulrunner</ulink>.</para>
92                                                         <para>Note that later versions of <application>XULrunner</application>
93                                                         (e.g., version 1.9.2.13) have replaced version 1.8.0.4, which has known
94                                                         security holes and is not recommended for applications that deal with
95                                                         public web content.</para>
96                                                 </listitem>
97                                                 <listitem>
98                                                         <para>A <systemitem class="osname">Mac OS</systemitem>
99                                                         Installation package for Staff Client version 1.2.3.0 is
100                                                         available from Evergreen Indiana. Download and install it from
101                                                         here:
102                                                         <ulink url="http://evergreen.lib.in.us/opac/extras/files/evergreen_osx_staff_client_1_2_3.zip">
103                                                         evergreen_osx_staff_client_1_2_3.zip</ulink> .
104                                                         </para>
105                                                 </listitem>
106                                                 <listitem>
107                                                         <para>To upgrade to a more recent version of the Staff Client, you can
108                                                         copy the <filename class="directory">build</filename> directory from a
109                                                         working <systemitem class="osname">Windows</systemitem> installation of
110                                                         the desired version of the Staff Client to your 
111                                                         <systemitem class="osname">Mac</systemitem>. 
112                                                         The required files may be located in a directory like this on the
113                                                         <systemitem class="osname">Windows</systemitem> machine: 
114                                                         <filename class="directory">C:\Program Files\Evergreen Staff Client\build</filename>.
115                                                         Copy these files to the <filename class="directory">Resources</filename>
116                                                         folder within the <package>Open-ILS</package> package in your 
117                                                         <filename class="directory">Applications</filename> directory on the Mac,
118                                                         overwriting files with the same names.</para>
119                                                 </listitem>
120                                                 <listitem>Drag the application's icon to your toolbar for easier
121                                                 access.</listitem>
122                                         </orderedlist>
123                                         <para>When you run the Staff Client installer, a screen will appear that looks
124                                         similar to this:</para>
125                                         <mediaobject>
126                                                 <alt>
127                                                         <phrase>Running the Staff Client installer for 
128                                                         <systemitem class="osname">Mac OS</systemitem></phrase>
129                                                 </alt>
130                                                 <imageobject>
131                                                         <imagedata fileref="../media/staffclientinstallation-staffclient-3.png" format="PNG" scalefit="1" width="20%"/>
132                                                 </imageobject>
133                                         </mediaobject>
134                                         <para>Click <guibutton>'Continue'</guibutton>, accept the license, then finish the
135                                         installation. The application will be located at the destination you selected
136                                         during installation. You will then be able to drag the application into your
137                                         toolbar for easier access.</para>
138                                         <mediaobject>
139                                                 <alt>
140                                                         <phrase>Finishing the installation</phrase>
141                                                 </alt>
142                                                 <imageobject>
143                                                         <imagedata fileref="../media/staffclientinstallation-staffclient-4.png" format="PNG" scalefit="1" width="20%"/>
144                                                 </imageobject>
145                                         </mediaobject>
146                                 </simplesect>
147                                 <simplesect>
148                                         <title>Running directly using <application>XULrunner</application></title>
149                                         <indexterm>
150                                                 <primary>staff client</primary>
151                                                 <secondary>XULRunner</secondary>
152                                         </indexterm>
153                                         <para>You must install an appropriate version of <application>XULrunner</application> 
154                                         to match the Evergreen version. See the following table for the recommended version of
155                                         <application>XULrunner</application>:</para>
156                                         <table xml:id="staffclientinstallation-table-1">
157                                                 <?dbfo keep-together="always" ?>
158                                                 <title>Evergreen / <application>XULrunner</application> Dependencies</title>
159                                                 <tgroup cols="2" align="left" colsep="1" rowsep="1">
160                                                         <colspec colnum="1" colname="evergreen_version" colwidth="1.0*"/>
161                                                         <colspec colnum="2" colname="xulrunner_version" colwidth="1.0*"/>
162                                                         <thead>
163                                                                 <row>
164                                                                         <entry>Evergreen Version</entry>
165                                                                         <entry>XULRunner Version</entry>
166                                                                 </row>
167                                                         </thead>
168                                                         <tbody>
169                                                                 <row>
170                                                                         <entry>Evergreen 1.6.x.x</entry>
171                                                                         <entry>XULrunner 1.9.x.x</entry>
172                                                                 </row>
173                                                                 <row>
174                                                                         <entry>Evergreen 1.4.x.x</entry>
175                                                                         <entry>XULrunner 1.8.0.4 or XULrunner 1.8.0.3</entry>
176                                                                 </row>
177                                                                 <row>
178                                                                         <entry>Evergreen 1.2.x.x</entry>
179                                                                         <entry>XULrunner 1.8.0.4 or XULrunner 1.8.0.3</entry>
180                                                                 </row>
181                                                         </tbody>
182                                                 </tgroup>
183                                         </table>
184                                         <note>If you have issues removing previously installed
185                                         <application>XULrunner</application> versions see 
186                                         <xref linkend="staffclientinstallation-remove-xulrunner"/>
187                                         for further information.</note>
188                                         <para>The Staff Client data from the directory 
189                                         <filename class="directory">./staff_client/build</filename> must be placed
190                                         somewhere on the machine (e.g. 
191                                         <filename class="directory">~/Desktop/Evergreen_Staff_Client</filename>).</para>
192                                         <para>Remember to call <application>XULrunner</application> with the full path to the
193                                         binary, followed by the install command and the path to the client data:</para>
194 <screen>
195         <userinput>
196         /Library/Frameworks/XUL.framework/xulrunner-bin --install-app ~/Desktop/Evergreen_Staff_Client
197         </userinput>
198 </screen>
199                                         <para>The command should exit quietly and will create the folder 
200                                         <filename class="directory">/Applications/OpenILS</filename>,
201                                         containing a launcher named <application>open_ils_staff_client</application>.</para>
202                                 </simplesect>
203                                 <simplesect xml:id="staffclientinstallation-remove-xulrunner">
204                                         <title>(OPTIONAL) Removing previously installed XULRunner versions</title>
205                                         <indexterm>
206                                                 <primary>XULRunner</primary>
207                                                 <secondary>removing previous versions</secondary>
208                                         </indexterm>
209                                         <para>If you already have a newer version of
210                                         <application>XULrunner</application> installed, per the release notes, 
211                                         you will need to remove the entire directory 
212                                         <filename class="directory">/Library/Frameworks/XUL.framework</filename> 
213                                         before downgrading.</para>
214                                         <para>In addition, you may also need to remove the previous file
215                                         <filename>/Library/Receipts/xulrunner-ver-mak.pkg</filename> .</para>
216                                         <para>If file <filename>/Library/Receipts/xulrunner-ver-mak.pkg</filename> does
217                                         not exist (possibly in newer <systemitem class="osname">Mac OS</systemitem>
218                                         releases), you need to flush the file <filename>receiptdb</filename>.</para>
219                                         <note>If you install a newer version of <application>XULrunner</application>
220                                         over a previous (older) install, the older install is not removed but the
221                                         symlinks are changed to the newer one.</note>
222                                 </simplesect>
223                                 <simplesect>
224                                         <title>(OPTIONAL) Flush Receiptdb file:</title>
225                                         <para>First, get the package identifier, then purge/forget the build that was
226                                         initially installed:</para>
227 <screen>
228         <userinput>
229         sudo pkgutil --pkgs > /tmp/pkgs.txt
230         sudo pkgutil --forget org.mozilla.xulrunner
231         </userinput>
232 </screen>
233                                         <note>It may not be necessary to edit the file
234                                         <filename>/Library/Receipts/InstallHistory.plist</filename> after deleting the
235                                         folder <filename class="directory">XUL.framework</filename>. See
236                                         <ulink url="http://lists.apple.com/archives/Installer-dev/2009/Jul/msg00008.html">
237                                         http://lists.apple.com/archives/Installer-dev/2009/Jul/msg00008.html</ulink> 
238                                         for more information.</note>
239                                 </simplesect>
240                                 <simplesect>
241                                         <title>Creating an APP file: Staff Client and <application>XULrunner</application> Bundled</title>
242                                         <para>An APP file is basically a folder. Start with a folder stucture like this:</para>
243 <screen>
244         <prompt>
245         Evergreen.app
246         __Contents
247         ____Frameworks
248         ____Resources
249         ____MacOS
250         </prompt>
251 </screen>
252                                         <para>Create an APP folder structure with the following commands:</para>
253 <screen>
254         <userinput>
255         mkdir -p Evergreen.app/Contents/Frameworks
256         mkdir -p Evergreen.app/Contents/Resources
257         mkdir -p Evergreen.app/Contents/MacOS
258         </userinput>
259 </screen>
260                                         <orderedlist>
261                                                 <listitem>
262                                                         <para>Create a new file in the folder
263                                                         <filename class="directory">Evergreen.app/Contents/Info.plist</filename>
264                                                         containing the following data (adjust for your version of
265                                                         Evergreen):</para>
266                                                         <programlisting language="xml"><![CDATA[
267 <?xml version="1.0" encoding="UTF-8"?>
268 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
269 <plist version="1.0">
270 <dict>
271         <key>CFBundleExecutable</key>
272         <string>xulrunner</string>
273         <key>CFBundleGetInfoString</key>
274         <string>OpenILS open_ils_staff_client rel_1_6_1_2</string>
275         <key>CFBundleInfoDictionaryVersion</key>
276         <string>6.0</string>
277         <key>CFBundleName</key>
278         <string>Evergreen Staff Client</string>
279         <key>CFBundlePackageType</key>
280         <string>APPL</string>
281         <key>CFBundleShortVersionString</key>
282         <string>rel_1_6_1_2</string>
283         <key>CFBundleVersion</key>
284         <string>rel_1_6_1_2.rel_1_6_1_2</string>
285         <key>NSAppleScriptEnabled</key>
286         <true/>
287         <key>CFBundleTypeIconFile</key>
288         <string>Evergreen.icns</string>
289 </dict>
290 </plist>
291 ]]></programlisting>
292                                                 </listitem>
293                                                 <listitem>Download and install an appropriate 
294                                                 <systemitem class="osname">Mac OS</systemitem> package of 
295                                                 <application>XULrunner</application> from the Mozilla website
296                                                 <ulink url="https://developer.mozilla.org/en/xulrunner">
297                                                 https://developer.mozilla.org/en/xulrunner</ulink> (see 
298                                                 <xref linkend="staffclientinstallation-table-1"/> for recommendations).</listitem>
299                                                 <listitem>
300                                                         <para>Make a copy of the folder
301                                                         <filename class="directory">/Library/Frameworks/XUL.Framework</filename>
302                                                         inside your APP file. It should look something like this:</para>
303 <screen>
304         <prompt>
305         Evergreen.app/
306         __Contents/
307         ____Frameworks/
308         ______XUL.Framework/
309         ______Versions/
310         ________Current -> 1.9.1.3 (symlink)
311         ________1.9.1.3/
312         ______XUL -> Versions/Current/XUL
313         ______libxpcom.dylib -> Versions/Current/libxpcom.dylib
314         ______xulrunner-bin -> Versions/Current/xulrunner-bin
315         </prompt>
316 </screen>
317                                                 </listitem>
318                                                 <listitem>Copy
319                                                 <filename>XUL.Framework/Versions/Current/xulrunner</filename> into the
320                                                 folder <filename class="directory">Evergreen.app/MacOS</filename>
321                                                 (do not symlink; copy the file).</listitem>
322                                                 <listitem>
323                                                         <para>Make <filename>Evergreen.app/Resources</filename> the root
324                                                         of your Evergreen application files like this:</para>
325 <screen>
326         <prompt>
327         Evergreen.app/
328         __Contents/
329         ____Resources/
330         ______BUILD_ID
331         ______application.ini
332         ______chrome/
333         ______components/
334         ______etc.
335         </prompt>
336 </screen>
337                                                 </listitem>
338                                                 <listitem>Put a <systemitem class="osname">Mac</systemitem> 
339                                                 format icon file named <filename>Evergreen.icns</filename> in 
340                                                 <filename class="resources">Resources</filename>.</listitem>
341                                         </orderedlist>
342                                 </simplesect>
343                         </section>
344                         <section xml:id="staffclientinstallation-installing-linux">
345                                 <title>Installing on Linux</title>
346                                 <simplesect>
347                                         <title>Quick Upgrade of the Staff Client</title>
348                                         <para>A Linux Staff Client is automatically built on the server as part of the
349                                         normal <emphasis>make install</emphasis> process for Evergreen server-side
350                                         software. To upgrade the Staff Client on a remote Linux workstation with a new
351                                         version, just copy the directory tree containing the Staff Client from your
352                                         server to the remote workstation.</para>
353                                         <para>Execute the following commands, replacing <literal>USER</literal>,
354                                         <literal>WORKSTATION</literal>, and <literal>SOME_PATH</literal> with
355                                         appropriate values:</para>
356 <screen>
357         <userinput>
358         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
359         scp -r ./build USER@WORKSTATION:/SOME_PATH/
360         </userinput>
361 </screen>
362                                         <para>You should test the newly copied Staff Client on the remote workstation.
363                                         Log into the workstation and execute the following command:</para>
364 <screen>
365         <userinput>
366         xulrunner /SOME_PATH/build/application.ini
367         </userinput>
368 </screen>
369                                 </simplesect>
370                                 <simplesect>
371                                         <title>Building the Staff Client on the Server</title>
372                                         <indexterm>
373                                                 <primary>staff client</primary>
374                                                 <secondary>building on the server</secondary>
375                                         </indexterm>
376                                         <para>A Linux Staff Client is automatically built on the server as part of the
377                                         normal <emphasis>make install</emphasis> process for Evergreen server-side
378                                         software. See <xref linkend="serversideinstallation-compile"/> for details of
379                                         the build process.</para>
380                                         <para>In order to install a compatible Staff Client on another Linux system, you
381                                         can copy the appropriate files from the Staff Client build directory on your
382                                         server to the new Linux system. You could manually build the Staff Client on the
383                                         new system, but you must ensure that the <envar>BUILD_ID</envar> you chose on
384                                         the server matches the <envar>BUILD_ID</envar> for each Staff Client you use on
385                                         other systems.</para>
386                                         <para>If you wish to use a pre-packaged <systemitem class="osname">Windows</systemitem>
387                                         version on some systems, you may want to choose the <envar>BUILD_ID</envar> on
388                                         both server and other versions to match that of the 
389                                         <systemitem class="osname">Windows</systemitem> Staff Client. To determine which
390                                         <envar>BUILD_ID</envar> was used for existing Staff Client installations,
391                                         execute each Staff Client and click the <guibutton>'About this Client'</guibutton>
392                                         button.</para>
393                                         <para>If you are allowed to make changes on the Evergreen server, another option
394                                         is to create a symbolic link. In order for a copy of the Staff Client and server
395                                         to work together, the <envar>BUILD_ID</envar> must match the name of the
396                                         directory containing the server components of the Staff Client, or the name of a
397                                         symbolic link to that directory. As the 
398                                         <systemitem class="username">root</systemitem> user, make the changes as follows:</para>
399 <screen>
400         <userinput>
401         # as the root user:
402         cd /openils/var/web/xul
403         ln -s SERVER_BUILD_ID/ CLIENT_BUILD_ID
404         </userinput>
405 </screen>
406                                 </simplesect>
407                                 <simplesect>
408                                         <title>Building the Staff Client on a Client Machine</title>
409                                         <para>This section is directed toward end-users who wish to use Linux rather than
410                                         <systemitem class="osname">Windows</systemitem> for client machines, but have limited
411                                         Linux experience. You can build the Staff Client on a Linux system without installing the
412                                         Evergreen Server component. This is a relatively simple process compared to server
413                                         installation, but does require some command-line work. The following instructions are 
414                                         for building Staff Client version 1.2.1.4 on 
415                                         <systemitem class="osname">Kubuntu 7.10</systemitem>; modify them as needed for
416                                         other distributions (the instructions should work as-is for
417                                         <systemitem class="osname">Ubuntu</systemitem> or 
418                                         <systemitem class="osname">Ubuntu</systemitem> derivatives).</para>
419                                         <procedure>
420                                                 <step>
421                                                         <title>Prerequisites</title>
422                                                         <para>Both <application>subversion</application> and
423                                                         <application>XULrunner</application> are required to build the Staff
424                                                         Client. As the <systemitem class="username">root</systemitem> user, 
425                                                         use <command>apt-get</command> to install packages for
426                                                         <application>subversion</application> and
427                                                         <application>XULrunner</application>. You can also use
428                                                         <command>synaptic</command>, the graphical user interface for
429                                                         <command>apt-get</command>. For <application>subversion</application>,
430                                                         select the latest version; for <application>XULrunner</application>,
431                                                         select version <emphasis>1.8.1.4-2ubuntu5</emphasis>.</para>
432 <screen>
433         <userinput>
434         # as the root user:
435         sudo apt-get install subversion
436         sudo apt-get install xulrunner
437         </userinput>
438 </screen>
439                                                 </step>
440                                                 <step>
441                                                         <title>Download the Source Code</title>
442                                                         <itemizedlist>
443                                                                 <listitem>
444                                                                         <para>Determine which version is needed</para>
445                                                                         <para>For most end-users, a specific version is required
446                                                                         to communicate properly with the Evergreen server. Check
447                                                                         with your system administrator, IT person, or HelpDesk to
448                                                                         determine which Staff Client versions are
449                                                                         supported.</para>
450                                                                         <para>Next, you need to determine which
451                                                                         <emphasis>tag</emphasis> to use when downloading the
452                                                                         source code. Tags are markers in the source code to create
453                                                                         a snapshot of the code as it existed at a certain time;
454                                                                         tags usually point to tested and stable code, or at least
455                                                                         a community-recognized release version.</para>
456                                                                         <para>To determine which tag to use, browse to 
457                                                                         <ulink url="http://svn.open-ils.org/trac/ILS/browser">
458                                                                         http://svn.open-ils.org/trac/ILS/browser</ulink>. 
459                                                                         Look in the <guilabel>Visit</guilabel> drop-down box; see
460                                                                         the list of <guilabel>Branches</guilabel> and, further
461                                                                         down, a list of <guilabel>Tags</guilabel>. You may have 
462                                                                         to do some guesswork, but it is fairly straightforward to
463                                                                         determine which tag to use. If the server is version
464                                                                         1.6.1.2, you will want to use the tag that looks most
465                                                                         appropriate. For example, as you look through the tag
466                                                                         list, notice the tag named 'rel_1_6_1_2'. This is the tag
467                                                                         you need; make a note of it for the next step.</para>
468                                                                 </listitem>
469                                                                 <listitem>
470                                                                         <para>Download the Code</para>
471                                                                         <para>As the
472                                                                         <systemitem class="username">opensrf</systemitem> 
473                                                                         user, open a terminal (command-line prompt) and navigate
474                                                                         to the directory in which you wish to download the Staff
475                                                                         Client. Use the following commands to download the proper
476                                                                         version of the source code by tag name:</para>
477 <screen>
478         <userinput>
479         # as the opensrf user:
480         cd /DOWNLOAD/DIRECTORY
481         svn co rel_1_6_1_2/
482         </userinput>
483 </screen>
484                                                                         <para>Remember to change "rel_1_6_1_2" to the appropriate
485                                                                         tag for your installation.</para>
486                                                                 </listitem>
487                                                         </itemizedlist>
488                                                 </step>
489                                                 <step>
490                                                         <title>Build the Staff Client</title>
491                                                         <para>In the following example, navigate to the directory in
492                                                         which the source code was downloaded, then navigate to the
493                                                         proper subdirectory and run the "make" utility to actually build
494                                                         the Staff Client. Remember to check with your system
495                                                         administrator about which Staff Client <envar>BUILD_ID</envar>
496                                                         to use. The server checks the Staff Client
497                                                         <envar>BUILD_ID</envar> against itself to determine whether or
498                                                         not a connecting client is supported. For instance, for the
499                                                         PINES installation (version 1.6.1.2) the supported
500                                                         <envar>BUILD_ID</envar> is "rel_1_6_1_2". Modify the following
501                                                         commands accordingly.</para>
502                                                         <para>As the <systemitem class="username">opensrf</systemitem>
503                                                         user, run the following commands to build the Staff Client:</para>
504 <screen>
505         <userinput>
506         # as the opensrf user:
507         wget http://evergreen-ils.org/downloads/Evergreen-ILS-1.6.1.2.tar.gz
508         tar xfz Evergreen-ILS-1.6.1.2.tar.gz
509         cd /home/opensrf/Evergreen-ILS-1.6.1.2
510         ./configure --prefix=/openils --sysconfdir=/openils/conf
511         cd ./Open-ILS/xul/staff_client/
512         make STAFF_CLIENT_BUILD_ID='rel_1_6_1_2' install
513         </userinput>
514 </screen>
515                                                 </step>
516                                                 <step>
517                                                         <title>Run the Staff Client</title>
518                                                         <para>As the <systemitem class="username">opensrf</systemitem> 
519                                                         user, navigate to the <filename class="directory">build/</filename>
520                                                         subdirectory and run the following command:</para>
521 <screen>
522         <userinput>
523         # as the opensrf user:
524         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client/build
525         xulrunner application.ini
526         </userinput>
527 </screen>
528                                                 </step>
529                                                 <step>
530                                                         <title>(OPTIONAL) Clean Up / Create Shortcuts</title>
531                                                         <para>The source code download included many files that are
532                                                         needed to build the Staff Client but are not necessary to run
533                                                         it. You may wish to remove them to save space, or to create a
534                                                         clean <literal>staging</literal> directory containing the
535                                                         finished Staff Client that can then be copied to other
536                                                         machines. To do this, execute the following commands (remember
537                                                         to replace <emphasis>DOWNLOAD_DIRECTORY</emphasis> and
538                                                         <emphasis>STAGING_DIRECTORY</emphasis> with the appropriate
539                                                         paths):</para>
540 <screen>
541         <userinput>
542         # as the opensrf user:
543         mkdir ~/STAGING_DIRECTORY
544         cd ~/DOWNLOAD_DIRECTORY/Open-ILS/xul/
545         cp -r staff_client ~/STAGING_DIRECTORY
546         </userinput>
547 </screen>
548                                                         <para>Test the Staff Client to verify that all necessary files
549                                                         were copied to the staging directory:</para>
550 <screen>
551         <userinput>
552         # as the opensrf user:
553         cd ~/STAGING_DIRECTORY/staff_client/build
554         xulrunner application.ini
555         </userinput>
556 </screen>
557                                                         <para>If there were no problems, then finish the cleanup by
558                                                         removing the original download directory as shown:</para>
559 <screen>
560         <userinput>
561         # as the opensrf user:
562         rm -r -f ~/DOWNLOAD_DIRECTORY
563         </userinput>
564 </screen>
565                                                         <para>Finally, the command:</para>
566 <screen>
567         <userinput>
568         # as the opensrf user:
569         xulrunner ~/STAGING_DIRECTORY/staff_client/build/application.ini
570         </userinput>
571 </screen>
572                                                         <para>will now run the Staff Client. You may wish to create a
573                                                         shortcut for the Staff Client. To do so, use the previous
574                                                         command as the target for the shortcut:
575                                                         <menuchoice><guimenu>Desktop</guimenu>
576                                                         <guimenuitem>StartMenu</guimenuitem>
577                                                         <guimenuitem>K-Menu</guimenuitem>
578                                                         </menuchoice></para>
579                                                 </step>
580                                         </procedure>
581                                 </simplesect>
582                                 <simplesect>
583                                         <title>Using Wine to Install on Linux</title>
584                                         <indexterm>
585                                                 <primary>staff client</primary>
586                                                 <secondary>using wine to install on Linux</secondary>
587                                         </indexterm>
588                                         <para>The Linux application <application>Wine</application> is another
589                                         alternative if you wish to install the packaged 
590                                         <systemitem class="osname">Windows</systemitem> versions rather than manually
591                                         building the Staff Client. <application>Wine</application> is a Linux
592                                         application that allows users to directly run
593                                         <systemitem class="osname">Windows</systemitem> executables, and is a simple 
594                                         way for casual Linux users to use the Staff Client. You can find more information 
595                                         about <application>Wine</application> at
596                                         <ulink url="http://www.winehq.org/site/docs/wineusr-guide/getting-wine">
597                                         http://www.winehq.org/site/docs/wineusr-guide/getting-wine</ulink>.</para>
598                                         <para>As the <systemitem class="username">root</systemitem> user, use
599                                         <command>apt-get</command> to install the package for <application>Wine</application>. 
600                                         You can also use <command>synaptic</command>, the graphical user interface.</para>
601                                         <orderedlist>
602                                                 <listitem>
603                                                         <para>Install wine:</para>
604 <screen>
605         <userinput>
606         # as the root user:
607         sudo apt-get install wine
608         </userinput>
609 </screen>
610                                                 </listitem>
611                                                 <listitem>
612                                                         <para>Visit the downloads section of the Evergreen website at
613                                                         <ulink url="http://www.evergreen-ils.org/downloads.php">
614                                                         http://www.evergreen-ils.org/downloads.php</ulink> and find the
615                                                         <systemitem class="osname">Microsoft Windows</systemitem> Installer
616                                                         that contains the desired version of the Staff Client. Download
617                                                         the installer and place it in a temporary directory.</para>
618                                                 </listitem>
619                                                 <listitem>
620                                                         <para>As the <systemitem class="username">opensrf</systemitem>
621                                                         user, navigate to the temporary directory where you downloaded 
622                                                         the <systemitem class="osname">Windows</systemitem> installer 
623                                                         file, then execute it with the <application>wine</application>
624                                                         application (remember to replace <emphasis>VERSION</emphasis> with
625                                                         the release number of the Staff Client you downloaded):</para>
626 <screen>
627         <userinput>
628         # as the opensrf user:
629         cd /TEMP_DIRECTORY
630         wine evergreen-setup-rel_VERSION.exe
631         </userinput>
632 </screen>
633                                                         <para>If this step fails, you may need to configure
634                                                         <application>Wine</application> first to properly emulate 
635                                                         <systemitem class="osname">Windows XP</systemitem>. To do so,
636                                                         type <command>winecfg</command> from the command line; in the
637                                                         <literal>Applications</literal> tab of the window that pops up,
638                                                         select <literal>Default Settings</literal> and choose
639                                                         <literal>Windows XP</literal> from the drop-down menu, then
640                                                         click <guibutton>'Apply'</guibutton>.</para>
641                                                 </listitem>
642                                                 <listitem>
643                                                         <para>Launch the Staff Client</para>
644                                                         <para>A new entry for the Staff Client should now appear
645                                                         somewhere in the <literal>All Applications</literal> menu of
646                                                         your Linux desktop. You may also find a new desktop shortcut for
647                                                         the Staff Client. To launch the Staff Client, visit the
648                                                         <literal>All Applications</literal> menu on your desktop and
649                                                         find the section similar to:</para>
650                                                         <para>
651                                                                 <menuchoice>
652                                                                         <guimenu>Wine</guimenu>
653                                                                         <guimenuitem>Program Files</guimenuitem>
654                                                                         <guimenuitem>Evergreen Staff Client</guimenuitem>
655                                                                         <guimenuitem>Evergreen Staff Client</guimenuitem>
656                                                                 </menuchoice>,
657                                                         </para>
658                                                         <para>or else launch the Staff Client from the new desktop shortcut.</para>
659                                                 </listitem>
660                                         </orderedlist>
661                                 </simplesect>
662                         </section>
663                 </section>
664                 <section>
665                         <title>Building the Staff Client</title>
666                         <indexterm>
667                                 <primary>staff client</primary>
668                                 <secondary>building</secondary>
669                         </indexterm>
670                         <para>You can also manually build the Staff Client by using the <command>make</command>
671                         utility in the Staff Client source directory (e.g., the directory 
672                         <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client</filename>
673                         for the current Evergreen version). There are a number of possible options to manually
674                         build special versions of the Staff Client on a Linux system. Following is a list of
675                         variables that you can pass to <command>make</command> to influence the manual build
676                         process:</para>
677                         <simplesect>
678                                 <title>
679                                         Build Variable <envar>STAFF_CLIENT_BUILD_ID</envar>
680                                 </title>
681                                 <para>During the normal <emphasis>make install</emphasis> Evergreen server-side
682                                 software build process, the variable defaults to an automatically generated
683                                 date/time string, but you can also override the value of <envar>BUILD_ID</envar>.</para>
684                                 <para>You could use the following commands during the normal install process:</para>
685 <screen>
686         <userinput>
687         # as the root user:
688         cd /home/opensrf/Evergreen-ILS-1.6.1.2
689         make STAFF_CLIENT_BUILD_ID=1_6_1_2 install
690         </userinput>
691 </screen>
692                                 <para>You can also manually build the Staff Client in the Staff Client
693                                 source directory with a different <envar>BUILD_ID</envar>.</para>
694                                 <para>As the <systemitem class="username">opensrf</systemitem> user,
695                                 execute the following commands to build the Staff Client (remember to replace
696                                 <emphasis>NEW_VERSION</emphasis> with an appropriate value):</para>
697 <screen>
698         <userinput>
699         # as the opensrf user:
700         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
701         make STAFF_CLIENT_BUILD_ID=NEW_VERSION  build
702         </userinput>
703 </screen>
704                         </simplesect>
705                         <simplesect>
706                                 <title>
707                                         Build Variable <envar>STAFF_CLIENT_VERSION</envar>
708                                 </title>
709                                 <para>During the normal <emphasis>make install</emphasis> Evergreen server-side
710                                 software build process, the variable is pulled automatically from a README file
711                                 in the Evergreen source root. The variable defaults to
712                                 <emphasis>0trunk.revision</emphasis>, where the value of "revision" is
713                                 automatically generated. You can override the value of <envar>VERSION</envar>
714                                 similarly to the <envar>BUILD_ID</envar>.</para>
715                                 <para>You could use the following commands during the normal install process:</para>
716 <screen>
717         <userinput>
718         # as the root user:
719         cd /home/opensrf/Evergreen-ILS-1.6.1.2
720         make STAFF_CLIENT_VERSION=0mytest.200 install
721         </userinput>
722 </screen>
723                                 <para>You can also manually build the Staff Client in the Staff Client
724                                 source directory with a different <envar>VERSION</envar>.</para>
725                                 <para>If you plan to make extensions update automatically, the 
726                                 <envar>VERSION</envar> needs to conform to the format recommended in 
727                                 <ulink url="https://developer.mozilla.org/en/Toolkit_version_format">
728                                 Toolkit Version Format</ulink> and newer versions need to be "higher" than older
729                                 versions.</para>
730                                 <para>As the <systemitem class="username">opensrf</systemitem> user,
731                                 execute the following commands to build the Staff Client:</para>
732 <screen>
733         <userinput>
734         # as the opensrf user:
735         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
736         make STAFF_CLIENT_VERSION=0mytest.200  build
737         </userinput>
738 </screen>
739                         </simplesect>
740                         <simplesect>
741                                 <title>
742                                         Build Variable <envar>STAFF_CLIENT_STAMP_ID</envar>
743                                 </title>
744                                 <para>During the normal <emphasis>make install</emphasis> Evergreen
745                                 server-side software build process, the variable is generated from
746                                 <envar>STAFF_CLIENT_VERSION</envar>. You may want to have multiple versions
747                                 of the Staff Client with different stamps, possibly for different uses or
748                                 client-side customizations. You can override the value of
749                                 <envar>STAMP_ID</envar> similarly to the <envar>BUILD_ID</envar>.</para>
750                                 <para>You could use the following commands during the normal install process:</para>
751 <screen>
752         <userinput>
753         # as the root user:
754         cd /home/opensrf/Evergreen-ILS-1.6.1.2
755         make STAFF_CLIENT_STAMP_ID=my_test_stamp install
756         </userinput>
757 </screen>
758                                 <para>You can also manually build the Staff Client in the Staff Client
759                                 source directory with a different <envar>STAMP_ID</envar>.</para>
760                                 <para>As the <systemitem class="username">opensrf</systemitem> user,
761                                 execute the following commands to build the Staff Client:</para>
762 <screen>
763         <userinput>
764         # as the opensrf user:
765         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
766         make STAFF_CLIENT_STAMP_ID=my_test_stamp  build
767         </userinput>
768 </screen>
769                         </simplesect>
770                 </section>
771                 <section>
772                         <title>Advanced Build Options</title>
773                         <indexterm>
774                                 <primary>staff client</primary>
775                                 <secondary>building</secondary>
776                                 <tertiary>advanced build options</tertiary>
777                         </indexterm>
778                         <para>In addition to the basic options listed above, there are a number of advanced
779                         options for building the Staff Client. Most are target names for the
780                         <command>make</command> utility and require that you build the Staff Client from the
781                         <literal>staff_client</literal> directory. See the following table for a list of
782                         possible <command>make</command> target keywords:</para>
783                         <table>
784                                 <title>Keywords Targets for "make" Command</title>
785                                 <?dbfo keep-together="always" ?>
786                                 <tgroup align="left" cols="2" colsep="1" rowsep="1">
787                                         <colspec colnum="1" colname="keyword" colwidth="1.0*"/>
788                                         <colspec colnum="2" colname="description" colwidth="3.0*"/>
789                                         <thead>
790                                                 <row>
791                                                         <entry>Keyword</entry>
792                                                         <entry>Description</entry>
793                                                 </row>
794                                         </thead>
795                                         <tbody>
796                                                 <row>
797                                                         <entry>clients</entry>
798                                                         <entry>Runs "make win-client", "make linux-client", and "make
799                                                         generic-client" individually</entry>
800                                                 </row>
801                                                 <row>
802                                                         <entry>client_dir</entry>
803                                                         <entry>Builds a client directory from the build directory, without
804                                                         doing a rebuild. The same as "copy everything but
805                                                         server/".</entry>
806                                                 </row>
807                                                 <row>
808                                                         <entry>client_app</entry>
809                                                         <entry>Prerequisite "client_dir"; removes "install.rdf" from
810                                                         client directory so an APP bundle can't be installed as an
811                                                         extension</entry>
812                                                 </row>
813                                                 <row>
814                                                         <entry>client_ext</entry>
815                                                         <entry>Prerequisite "client_dir"; remove "application.ini",
816                                                         "autoupdate.js", "standalone_xul_app.js" from client directory so
817                                                         an extension won't break Firefox</entry>
818                                                 </row>
819                                                 <row>
820                                                         <entry>extension</entry>
821                                                         <entry>Prerequisite "client_ext"; rewritten to use "client_ext"</entry>
822                                                 </row>
823                                                 <row>
824                                                         <entry>generic-client</entry>
825                                                         <entry>Prerequisite "client_app"; makes an XPI file suitable for
826                                                         use with "xulrunner --install-app""</entry>
827                                                 </row>
828                                                 <row>
829                                                         <entry>win-xulrunner</entry>
830                                                         <entry>Prerequisite "client_app"; adds Windows xulrunner to client build</entry>
831                                                 </row>
832                                                 <row>
833                                                         <entry>linux-xulrunner</entry>
834                                                         <entry>Prerequisite "client_app"; adds Linux xulrunner to client build</entry>
835                                                 </row>
836                                                 <row>
837                                                         <entry>win-client</entry>
838                                                         <entry>Prerequisite "win-xulrunner"; builds "setup exe" (requires
839                                                         that "nsis" package be installed, will add options for automatic
840                                                         update if configured and developer options if client build was a
841                                                         "make devbuild")</entry>
842                                                 </row>
843                                                 <row>
844                                                         <entry>linux-client</entry>
845                                                         <entry>Prerequisite "linux_xulrunner"; builds a "tar.bz2" bundle
846                                                         of the Linux client</entry>
847                                                 </row>
848                                                 <row>
849                                                         <entry>[generic-|win-|linux-|extension-]updates[-client]</entry>
850                                                         <entry>Calls external/make_updates.sh to build full and partial
851                                                         updates generic/win/linux/extension prefix limit to that
852                                                         distribution; Adding <option>-client</option> builds clients and
853                                                         copies them to a subdirectory of the 
854                                                         <filename class="directory">updates</filename> directory as well;
855                                                         <option>extension-updates-client</option> doesn't exist.</entry>
856                                                 </row>
857                                         </tbody>
858                                 </tgroup>
859                         </table>
860                         <para>Following are descriptions of other special build options:</para>
861                         <simplesect>
862                                 <title>Developer Build</title>
863                                 <para>You can create a so-called <emphasis>developer build</emphasis>
864                                 of the Staff Client by substituting <option>devbuild</option> for
865                                 <option>build</option> when running <command>make</command> from the
866                                 <literal>staff_client</literal> directory. The build will contain an
867                                 extra configuration file that enables some developer options.</para>
868                                 <para>As the <systemitem class="username">opensrf</systemitem> user, run
869                                 the following commands from the Staff Client source directory:</para>
870 <screen>
871         <userinput>
872         # as the opensrf user:
873         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
874         make devbuild
875         </userinput>
876 </screen>
877                         </simplesect>
878                         <simplesect>
879                                 <title>Compressed Javascript</title>
880                                 <para>You can execute the Google <systemitem class="resource">Closure Compiler</systemitem>
881                                 utility to automatically review and compress Javascript code after the build
882                                 process completes, by substituting <option>compress-javascript</option> for
883                                 <option>build</option> when running <command>make</command>.
884                                 For more information on the Google Closure Compiler, see 
885                                 <ulink url="http://code.google.com/closure/compiler/">
886                                 http://code.google.com/closure/compiler</ulink>.</para>
887                                 <para>As the <systemitem class="username">opensrf</systemitem> user, run
888                                 the following commands from the Staff Client source directory:</para>
889 <screen>
890         <userinput>
891         # as the opensrf user:
892         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
893         make compress-javascript
894         </userinput>
895 </screen>
896                                 <para>You can also combine Javascript review and compression, and also perform a
897                                 <emphasis>developer build</emphasis>.</para>
898                                 <para>As the <systemitem class="username">opensrf</systemitem> user, run 
899                                 the following <command>make</command> command from the Staff Client source directory
900                                 (the order of options is important):</para>
901 <screen>
902         <userinput>
903         # as the opensrf user:
904         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
905         make  devbuild  compress-javascript
906         </userinput>
907 </screen>
908                         </simplesect>
909                         <simplesect xml:id="staffclientinstallation-autoupdatehost">
910                                 <title>Automatic Update Host</title>
911                                 <para>You can override the host used to check for automatic Staff Client updates
912                                 by specifying the <option>AUTOUPDATE_HOST</option> option.</para>
913                                 <para>You could use the following commands during the normal install process:</para>
914 <screen>
915         <userinput>
916         # as the root user:
917         cd /home/opensrf/Evergreen-ILS-1.6.1.2
918         make AUTOUPDATE_HOST=localhost install
919         </userinput>
920 </screen>
921                                 <para>You can manually build the Staff Client in the Staff Client
922                                 source directory and set <option>AUTOUPDATE_HOST</option> to enable automatic
923                                 update checking.</para>
924                                 <para>As the <systemitem class="username">opensrf</systemitem> user,
925                                 execute the following commands to build the Staff Client:</para>
926 <screen>
927         <userinput>
928         # as the opensrf user:
929         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
930         make AUTOUPDATE_HOST=localhost build
931         </userinput>
932 </screen>
933                                 <para>For more information on Automatic Updates, see
934                                 <xref linkend="staffclientinstallation-autoupdate"/>.</para>
935                         </simplesect>
936                 </section>
937                 <section>
938                         <title>Installing and Activating a Manually Built Staff Client</title>
939                         <para>The Staff Client is automatically built, installed and activated as part of the
940                         normal <command>make<option>install</option></command> process for Evergreen
941                         server-side software. However, if you manually build the Staff Client from the
942                         <literal>staff_client</literal> directory, then you need to take additional steps to
943                         properly install and activate it. You also have the option of installing the Staff
944                         Client on the same machine it was built on, or on a different machine.</para>
945                         <para>Assuming you have already built the Staff Client, and that your installation is
946                         in the directory <filename class="directory">/openils/var/web/xul</filename>, as the
947                         <systemitem class="username">opensrf</systemitem> user execute the following
948                         commands:</para>
949 <screen>
950         <userinput>
951         # as the opensrf user:
952         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
953         mkdir -p "/openils/var/web/xul/$(cat build/BUILD_ID)"
954         cp -R build/server "/openils/var/web/xul/$(cat build/BUILD_ID)"
955         </userinput>
956 </screen>
957                 </section>
958                 <section>
959                         <title>Packaging the Staff Client</title>
960                         <para>Once you have built the Staff Client, you can create several forms of special client
961                         packages by using a modified <command>make</command> command in the <literal>staff_client</literal>
962                         directory.</para>
963                         <simplesect>
964                                 <title>Packaging a Generic Client</title>
965                                 <para>This build creates a Staff Client packaged as an XPI file suitable for use with
966                                 the <option>--install-app</option> parameter of <application>XULrunner</application>.
967                                 It requires that you already have the <systemitem>zip</systemitem> utility
968                                 installed on your system.</para>
969                                 <para>As the <systemitem class="username">opensrf</systemitem> user, execute
970                                 the following commands:</para>
971 <screen>
972         <userinput>
973         # as the opensrf user:
974         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
975         make generic-client
976         </userinput>
977 </screen>
978                                 <para>The output file <filename>evergreen_staff_client.xpi</filename> will be created.</para>
979                         </simplesect>
980                         <simplesect>
981                                 <title>Packaging a <systemitem class="osname">Windows</systemitem> Client</title>
982                                 <para>This build creates a Staff Client packaged as a 
983                                 <systemitem class="osname">Windows</systemitem> executable. It requires that
984                                 you already have the <application>unzip</application> utility installed on
985                                 your system. It also requires that you install 
986                                 <ulink url="http://nsis.sourceforge.net/">NSIS (Nullsoft Scriptable Install System)</ulink>,
987                                 a professional open source utility package used to create 
988                                 <systemitem class="osname">Windows</systemitem> installers (the
989                                 <application>"makensis"</application> utility is installed as part of the
990                                 <application>"nsis"</application> package). You should use Version 2.45 or
991                                 later.</para>
992                                 <para>If you wish for the Staff Client to have a link icon/tray icon by
993                                 default, you may wish to provide a pre-modified
994                                 <application>xulrunner-stub.exe</application>. Place it in the Staff Client
995                                 source directory and <command>make</command> will automatically use it instead
996                                 of the one that comes with the downloaded <application>XULrunner</application>
997                                 release. The version of <application>xulrunner-stub.exe</application> need not
998                                 match exactly.</para>
999                                 <para>You can also use a tool such as 
1000                                 <ulink url="http://www.angusj.com/resourcehacker/">Resource Hacker</ulink>
1001                                 to embed icons. <application>Resource Hacker</application> is an open-source
1002                                 utility used to modify resources within 32-bit
1003                                 <systemitem class="osname">Windows</systemitem> executables. 
1004                                 Some useful icon ID strings include the following:</para>
1005                                 <table>
1006                                         <?dbfo keep-together="always" ?>
1007                                         <title>Useful icon ID strings</title>
1008                                         <tgroup align="left" cols="2" colsep="1" rowsep="1">
1009                                                 <colspec colnum="1" colname="keyword" colwidth="1.0*"/>
1010                                                 <colspec colnum="2" colname="icon" colwidth="1.0*"/>
1011                                                 <tbody>
1012                                                         <row>
1013                                                                 <entry>IDI_APPICON</entry>
1014                                                                 <entry>Tray icon</entry>
1015                                                         </row>
1016                                                         <row>
1017                                                                 <entry>32512</entry>
1018                                                                 <entry>Default window icon</entry>
1019                                                         </row>
1020                                                 </tbody>
1021                                         </tgroup>
1022                                 </table>
1023                                 <para>As the <systemitem class="username">opensrf</systemitem> user
1024                                 execute the following commands:</para>
1025 <screen>
1026         <userinput>
1027         # as the opensrf user:
1028         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1029         make win-client
1030         </userinput>
1031 </screen>
1032                                 <para>The output file <filename>evergreen_staff_client_setup.exe</filename> will be created.</para>
1033                         </simplesect>
1034                         <simplesect>
1035                                 <title>Packaging a Linux Client</title>
1036                                 <para>This build creates a Staff Client packaged as a compressed
1037                                 <literal>tar</literal> archive file with <application>XULrunner</application>
1038                                 already bundled with it. It requires that you already have the
1039                                 <application>bzip2</application> utility installed on your system.</para>
1040                                 <para>As the <systemitem class="username">opensrf</systemitem> user, 
1041                                 execute the following commands:</para>
1042 <screen>
1043         <userinput>
1044         # as the opensrf user:
1045         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1046         make linux-client
1047         </userinput>
1048 </screen>
1049                                 <para>The output file <filename>evergreen_staff_client.tar.bz2</filename> will be created.</para>
1050                         </simplesect>
1051                         <simplesect>
1052                                 <title>Packaging a <application>Firefox</application> Extension</title>
1053                                 <para>This build creates a Staff Client packaged as a <application>Firefox</application>
1054                                 extension. It requires that you already have the <systemitem>zip</systemitem>
1055                                 utility installed on your system.</para>
1056                                 <para>As the <systemitem class="username">opensrf</systemitem> user,
1057                                 execute the following commands:</para>
1058 <screen>
1059         <userinput>
1060         # as the opensrf user:
1061         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1062         make extension
1063         </userinput>
1064 </screen>
1065                                 <para>The output file <filename>evergreen.xpi</filename> will be created.</para>
1066                         </simplesect>
1067                 </section>
1068                 <section xml:id="staffclientinstallation-autoupdate">
1069                         <title>Staff Client Automatic Updates</title>
1070                         <indexterm>
1071                                 <primary>staff client</primary>
1072                                 <secondary>automatic updates</secondary>
1073                         </indexterm>
1074                         <para>It is possible to set up support for automatic Staff Client updates, either during
1075                         the normal Evergreen server-side build process, or by manually building the Staff Client
1076                         with certain special options.</para>
1077                         <warning>
1078                                 <para>Automatic update server certificate requirements are more strict than
1079                                 normal server requirements. <application>Firefox</application> and
1080                                 <application>XULrunner</application> will both ignore any automatic update
1081                                 server that is not validated by a trusted certificate authority. Servers with
1082                                 exceptions added to force the Staff Client to accept them <emphasis>WILL NOT
1083                                 WORK</emphasis>.</para>
1084                                 <para>In addition, automatic updates have special requirements for the file
1085                                 <filename>update.rdf</filename>:</para>
1086                                 <orderedlist>
1087                                         <listitem>It must be served from an SSL server, or</listitem>
1088                                         <listitem>It must be signed with the  <ulink url="https://developer.mozilla.org/en/McCoy">
1089                                         https://developer.mozilla.org/en/McCoy</ulink> tool.</listitem>
1090                                 </orderedlist>
1091                                 <para>You can pre-install the signing key into the file
1092                                 <filename>install.rdf</filename> directly, or install it into a copy as
1093                                 <filename>install.mccoy.rdf</filename>. If the latter exists it will be copied
1094                                 into the build instead of the original file
1095                                 <filename>install.rdf</filename>.</para>
1096                         </warning>
1097                         <simplesect>
1098                                 <title>Autoupdate Host</title>
1099                                 <para>You can manually set the name of the automatic update host. If you do
1100                                 not set the name then, by default, the Staff Client will not include an
1101                                 automatic update preference. You can set the autoupdate host name as
1102                                 follows:</para>
1103                                 <itemizedlist>
1104                                         <listitem>
1105                                                 <para>At configuration time during the normal <emphasis>make install</emphasis>
1106                                                 process for Evergreen server-side software.</para>
1107                                                 <para>You can do this when you first configure the Evergreen server-side 
1108                                                 software (see <xref linkend="serversideinstallation-configure"/>). 
1109                                                 As the <systemitem class="username">opensrf</systemitem> user, execute 
1110                                                 the following commands:</para>
1111 <screen>
1112         <userinput>
1113         # as the opensrf user:
1114         cd /home/opensrf/Evergreen-ILS-1.6.1.2
1115         ./configure --prefix=/openils --sysconfdir=/openils/conf --with-updateshost=hostname
1116         make
1117         </userinput>
1118 </screen>
1119                                         </listitem>
1120                                         <listitem>
1121                                                 <para>During a manual Staff Client build process.</para>
1122                                                 <para>You can override the variable
1123                                                 <envar>AUTOUPDATE_HOST=hostname</envar> and manually build the
1124                                                 Staff Client from the <literal>staff_client</literal>
1125                                                 directory (see <xref linkend="staffclientinstallation-autoupdatehost"/> 
1126                                                 for details). If you specify only a bare hostname (for example, 
1127                                                 <systemitem class="domainname">example.com</systemitem>) then
1128                                                 the Staff Client will automatically use the secure URL 
1129                                                 <systemitem class="domainname">https://example.com</systemitem>.
1130                                                 If you wish to use a non-https URL, then you must explicitly 
1131                                                 specify the full URL (for example, 
1132                                                 <systemitem class="domainname">http://example.com</systemitem>).</para>
1133                                                 <para>As the <systemitem class="username">opensrf</systemitem> user,
1134                                                 execute the following commands to build the Staff Client (remember to
1135                                                 replace <emphasis>SOME_URL</emphasis> with an appropriate value)
1136                                                 :</para>
1137 <screen>
1138         <userinput>
1139         # as the opensrf user:
1140         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1141         make AUTOUPDATE_HOST=http://SOME_URL build
1142         </userinput>
1143 </screen>
1144                                         </listitem>
1145                                 </itemizedlist>
1146                         </simplesect>
1147                         <simplesect>
1148                                 <title>Building Updates</title>
1149                                 <indexterm>
1150                                         <primary>staff client</primary>
1151                                         <secondary>automatic updates</secondary>
1152                                         <tertiary>building</tertiary>
1153                                 </indexterm>
1154                                 <para>Similar to building clients, you can use the targets
1155                                 <option>generic-updates</option>, <option>win-updates</option>,
1156                                 <option>linux-updates</option>, and <option>extension-updates</option>
1157                                 individually with <command>make</command> to build the update files for the
1158                                 Staff Client. To build all the targets at once, simply use the target
1159                                 <option>updates</option>.</para>
1160                                 <para>A full update will be built for each specified target (or for all if you
1161                                 use the target <option>updates</option>). For all but extensions any previous
1162                                 full updates (archived by default in the directory 
1163                                 <filename class="directory">/openils/var/updates/archives</filename>) will be
1164                                 used to make partial updates. Partial updates tend to be much smaller and will
1165                                 thus download more quickly, but if something goes wrong with a partial update
1166                                 the full update will be used as a fallback. Extensions do not currently support
1167                                 partial updates.</para>
1168                                 <para>As the <systemitem class="username">opensrf</systemitem> user, change
1169                                 directory to the Staff Client source directory, then execute the following
1170                                 commands:</para>
1171 <screen>
1172         <userinput>
1173         # as the opensrf user:
1174         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1175         </userinput>
1176 </screen>
1177                                 <para>Command to build all updates at once:</para>
1178 <screen>
1179         <userinput>
1180         # as the opensrf user:
1181         make updates
1182         </userinput>
1183 </screen>
1184                                 <para>commands to build updates individually:</para>
1185 <screen>
1186         <userinput>
1187         # as the opensrf user:
1188         make generic-updates
1189         make win-updates
1190         make linux-updates
1191         make extension-updates
1192         </userinput>
1193 </screen>
1194                         </simplesect>
1195                         <simplesect>
1196                                 <title>Building updates with clients</title>
1197                                 <indexterm>
1198                                         <primary>staff client</primary>
1199                                         <secondary>automatic updates</secondary>
1200                                         <tertiary>building with clients</tertiary>
1201                                 </indexterm>
1202                                 <para>To save time and effort you can build updates and manual download
1203                                 clients at the same time by adding the phrase <literal>"-client"</literal> to each
1204                                 target name (for example, you could specify <option>updates-client</option> to build 
1205                                 all the targets at once, or you could specify <option>win-updates-client</option>
1206                                 to build updates individually). This process will not work for the option
1207                                 <option>extension-updates</option>.</para>
1208                                 <para>The clients will be installed alongside the updates and listed on the
1209                                 <filename>manualupdate.html</filename> page, instead of being left in the
1210                                 <literal>staff_client</literal> directory.</para>
1211                                 <para>As the <systemitem class="username">opensrf</systemitem> user, execute
1212                                 one of the following commands:</para>
1213                                 <para>To build all updates at once:</para>
1214 <screen>
1215         <userinput>
1216         # as the opensrf user:
1217         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1218         make updates-client
1219         </userinput>
1220 </screen>
1221                                 <para>To build updates individually:</para>
1222 <screen>
1223         <userinput>
1224         # as the opensrf user:
1225         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1226         make generic-updates-client
1227         make win-updates-client
1228         make linux-updates-client
1229         </userinput>
1230 </screen>
1231                         </simplesect>
1232                         <simplesect>
1233                                 <title>Activating the Update Server</title>
1234                                 <indexterm>
1235                                         <primary>staff client</primary>
1236                                         <secondary>automatic updates</secondary>
1237                                         <tertiary>activating the update server</tertiary>
1238                                 </indexterm>
1239                                 <para>This section reviews scripts associated with the update server, and
1240                                 requires some final adjustments to file permissions.</para>
1241                                 <para>The Apache example configuration creates an <literal>updates</literal>
1242                                 directory that, by default, points to the directory 
1243                                 <filename class="directory">/openils/var/updates/pub</filename>. This
1244                                 directory contains one HTML file and several specially-named script files.</para>
1245                                 <para>The <filename>updatedetails.html</filename> file is the fallback web
1246                                 page for the update details. The <filename>check</filename> script is used for
1247                                 <application>XULrunner</application> updates. The
1248                                 <filename>update.rdf</filename> script is used for extension updates. 
1249                                 The <filename>manualupdate.html</filename> file checks for clients to provide
1250                                 download links when automatic updates have failed and uses the download script
1251                                 to force a download of the generic client XPI (compared to
1252                                 <application>Firefox</application> trying to install it as an
1253                                 extension).</para>
1254                                 <para>To change the permissions for the scripts
1255                                 <filename>check</filename>, <filename>download</filename>,
1256                                 <filename>manualupdate.html</filename>, and
1257                                 <filename>update.rdf</filename>, as the root user execute the following
1258                                 commands:</para>
1259 <screen>
1260         <userinput>
1261         # as the root user:
1262         cd /openils/var/updates/pub
1263         chmod +x  check  download  manualupdate.html  update.rdf
1264         </userinput>
1265 </screen>
1266                         </simplesect>
1267                 </section>
1268                 <section>
1269                         <title>Other tips</title>
1270                         <simplesect xml:id="staffclientinstallation-othertips">
1271                                 <title>Multiple workstations on one install</title>
1272                                 <para>Multiple workstation registrations for the same server can be accomplished
1273                                 with a single Staff Client install by using multiple profiles. When running
1274                                 <application>XULrunner</application> you can specify the option
1275                                 <literal>"-profilemanager"</literal> or <literal>"-P"</literal> (uppercase "P")
1276                                 to force the Profile Manager to start. Unchecking the <literal>"Don't ask at startup"</literal>
1277                                 option will make this the default.</para>
1278                                 <para>Once you have opened the Profile Manager you can create additional
1279                                 profiles, one for each workstation you wish to register. You may need to install
1280                                 SSL exceptions for each profile.</para>
1281                                 <para>When building any of the targets <option>win-client</option>,
1282                                 <option>win-updates-client</option>, or <option>updates-client</option>, you can
1283                                 specify <option>NSIS_EXTRAOPTS=-DPROFILES</option> to add an option
1284                                 <guimenuitem>"Evergreen Staff Client Profile Manager"</guimenuitem> to the
1285                                 start menu.</para>
1286                                 <para>As the <systemitem class="username">opensrf</systemitem> user, 
1287                                 execute the following commands:</para>
1288 <screen>
1289         <userinput>
1290         # as the opensrf user:
1291         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client
1292         make NSIS_EXTRAOPTS=-DPROFILES win-client
1293         </userinput>
1294 </screen>
1295                         </simplesect>
1296                         <simplesect>
1297                                 <title> Multiple Staff Clients</title>
1298                                 <para>It may be confusing if you are not careful, but you can log in to
1299                                 multiple Evergreen servers at the same time, or a single Evergreen server
1300                                 multiple times. In either case you will need to create an additional profile for
1301                                 each additional server or workstation you want to log in as (see the previous
1302                                 tip in <xref linkend="staffclientinstallation-othertips"/>).</para>
1303                                 <para>Once you have created the profiles, run
1304                                 <application>XULrunner</application> with the option <option>-no-remote</option>
1305                                 (in addition to <option>"-profilemanger"</option> or <option>"-P"</option> if
1306                                 needed). Instead of <application>XULrunner</application> opening a new login
1307                                 window on your existing session it will start a new session instead, which can
1308                                 then be logged in to a different server or workstation ID.</para>
1309                         </simplesect>
1310                 </section>
1311         </section>
1312         <section xml:id="staffclientinstallation-running-staffclient">
1313                 <title>Running the Staff Client</title>
1314                 <indexterm>
1315                         <primary>staff client</primary>
1316                         <secondary>running</secondary>
1317                         <tertiary>linux</tertiary>
1318                 </indexterm>
1319                 <para>You can run the Staff Client on a Linux system by using the
1320                 <application>XULrunner</application> application (installed automatically and by default
1321                 with <application>Firefox</application> <literal>Version 3.0</literal> and later on 
1322                 <systemitem class="osname">Ubuntu</systemitem> and
1323                 <systemitem class="osname">Debian</systemitem> distributions).</para>
1324                 <para>For example, if the source files for the Evergreen installation are in the directory 
1325                 <filename class="directory">/home/opensrf/Evergreen-ILS-1.6.1.2/</filename> you can start the 
1326                 Staff Client as shown in the following example:</para>
1327 <screen>
1328         <userinput>
1329         # as the opensrf user:
1330         cd /home/opensrf/Evergreen-ILS-1.6.1.2/Open-ILS/xul/staff_client/build
1331         xulrunner application.ini
1332         </userinput>
1333 </screen>
1334                 <section xml:id="staffclientinstallation-workstationnames">
1335                         <title>Assigning Workstation Names</title>
1336                         <indexterm>
1337                                 <primary>staff client</primary>
1338                                 <secondary>assigning workstation names</secondary>
1339                         </indexterm>
1340                         <para>The Staff Client must be assigned to a library and given a unique name before it
1341                         will connect fully to the Evergreen server. The only restriction is that the workstation's
1342                         name must be unique within the assigned library. Make sure to select a workstation name
1343                         that you will remember later, one that reflects the role, purpose, and/or location of a
1344                         particular computer. These names will come up later in statistical reporting, and can also
1345                         be handy when troubleshooting.</para>
1346                         <mediaobject>
1347                                 <alt>
1348                                         <phrase>Example of unconfigured Staff Client</phrase>
1349                                 </alt>
1350                                 <imageobject>
1351                                         <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-1.png" format="PNG" scalefit="1" width="60%"/>
1352                                 </imageobject>
1353                         </mediaobject>
1354                         <para>In order to assign a workstation a name, a user with appropriate
1355                         permissions must login to the Staff Client. In PINES, the local system
1356                         administrator (OPSM) has the ability to assign workstation names in their
1357                         library system. Library managers (LIBM's) have the ability within their
1358                         branch. To assign a workstation a name, login to the system. You will be
1359                         prompted to assign the workstation a library and a name:</para>
1360                         <mediaobject>
1361                                 <alt>
1362                                         <phrase>Example of configured Staff Client</phrase>
1363                                 </alt>
1364                                 <imageobject>
1365                                         <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-2.png" format="PNG" scalefit="1" width="60%"/>
1366                                 </imageobject>
1367                         </mediaobject>
1368                         <para>Select the library this workstation physically operates in from the drop
1369                         down menu. In this example, we have selected "MGRL-MA". Type in a friendly name
1370                         for the workstation. In this example, we are installing the Staff Client on the
1371                         director's personal system, and have named it as such. Then click
1372                         <guibutton>'Register'</guibutton>.</para>
1373                         <para>Once you have registered your workstation
1374                         with the server, your screen will look like this:</para>
1375                         <mediaobject>
1376                                 <alt>
1377                                         <phrase>Example of registered Staff Client</phrase>
1378                                 </alt>
1379                                 <imageobject>
1380                                         <imagedata fileref="../media/staffclientinstallation-staffclient-workstationnames-3.png" format="PNG" scalefit="1" width="60%"/>
1381                                 </imageobject>
1382                         </mediaobject>
1383                         <para>You are now ready to log into the Staff Client for the first time. Type in
1384                         your password again, and click <guibutton>'Login'</guibutton>.</para>
1385                 </section>
1386                 <section xml:id="staffclientinstallation-proxy">
1387                         <title>Running the Staff Client Over An <systemitem class="protocal">SSH</systemitem> Tunnel</title>
1388                         <indexterm>
1389                                 <primary>staff client</primary>
1390                                 <secondary>running through an SSH tunnel</secondary>
1391                         </indexterm>
1392                         <para>You can configure the Staff Client to communicate with the Evergreen server over
1393                         an <systemitem class="protocal">SSH</systemitem> tunnel using a SOCKS 5 proxy
1394                         server. There are several reasons for sending network traffic for the Staff Client
1395                         through an <systemitem class="protocal">SSH</systemitem> proxy:</para>
1396                         <itemizedlist>
1397                                 <listitem>
1398                                         <para>Firewalls may prevent you from reaching the Evergreen
1399                                         server. This may happen when you are connecting the Staff
1400                                         Client to a test server that should not be available
1401                                         generally, or it may be the result of network design
1402                                         priorities other than ease of use.</para>
1403                                 </listitem>
1404                                 <listitem>
1405                                         <para>You may wish to improve security in situations where
1406                                         Staff Client traffic may be susceptible to network
1407                                         eavesdropping. This is especially true when staff machines
1408                                         connect via wireless links to the network.</para>
1409                                 </listitem>
1410                         </itemizedlist>
1411                         <section>
1412                                 <title>Setting Up an <systemitem class="protocal">SSH</systemitem> Tunnel</title>
1413                                 <para>You will need a server that allows you to log in via 
1414                                 <systemitem class="protocal">SSH</systemitem> and has network access to the 
1415                                 Evergreen server you want to reach. You will use your username and password
1416                                 for that <systemitem class="protocal">SSH</systemitem> server to set up a
1417                                 tunnel.</para>
1418                                 <para>For <systemitem class="osname">Windows</systemitem> users, one good
1419                                 solution is the open-source utility
1420                                 <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</ulink>,
1421                                 a free <systemitem class="protocal">telnet/SSH</systemitem> client.
1422                                 Following are instructions for setting up an <application>SSH</application> 
1423                                 session using the <application>PuTTY</application> utility:</para>
1424                                 <mediaobject>
1425                                         <alt>
1426                                                 <phrase>Setting up an <systemitem class="protocal">SSH</systemitem>
1427                                                 tunnel in <application>PuTTY</application></phrase>
1428                                         </alt>
1429                                         <imageobject>
1430                                                 <imagedata fileref="../media/staffclientinstallation-proxy-putty-1.png" format="PNG" scalefit="1" width="60%"/>
1431                                         </imageobject>
1432                                 </mediaobject>
1433                                 <procedure>
1434                                         <step>
1435                                                 <para>Using the menu on the left, find the section:</para>
1436                                                 <para>
1437                                                         <menuchoice>
1438                                                                 <guimenu>Connection</guimenu>
1439                                                                 <guimenuitem>SSH</guimenuitem>
1440                                                                 <guimenuitem>Tunnels</guimenuitem>
1441                                                         </menuchoice>
1442                                                 </para>
1443                                         </step>
1444                                         <step>
1445                                                 <para>In the section on the right labeled <literal>"Source
1446                                                 port"</literal>, enter <literal>9999</literal>.</para>
1447                                         </step>
1448                                         <step>
1449                                                 <para>Set the checkbox <literal>"Dynamic"</literal>. Do not
1450                                                 enter anything in the <literal>"Destination"</literal> text
1451                                                 entry box.</para>
1452                                         </step>
1453                                         <step>
1454                                                 <para>Click <guibutton>'Add'</guibutton> and notice that
1455                                                 <literal>"D9999"</literal> now appears in the section
1456                                                 labeled <literal>"Forwarded ports"</literal>.</para>
1457                                         </step>
1458                                         <step>
1459                                                 <para>Use the menu on the left, find the
1460                                                 <literal>"Session"</literal> section, then enter the host name
1461                                                 of the <systemitem class="protocal">SSH</systemitem>
1462                                                 server.</para>
1463                                         </step>
1464                                         <step>
1465                                                 <para>A pop-up window will open to allow you to enter your
1466                                                 username and password. Once you are logged in, the tunnel is
1467                                                 open.</para>
1468                                         </step>
1469                                 </procedure>
1470                                 <para>See <ulink url="http://inside.mines.edu/~gmurray/HowTo/sshNotes.html">How to set up
1471                                 <systemitem class="protocal">SSH</systemitem> (for the beginner)</ulink> for information on
1472                                 setting up <systemitem class="protocal">SSH</systemitem> for other client operating
1473                                 systems.</para>
1474                         </section>
1475                         <section>
1476                                 <title>Configuring the Staff Client to Use the <systemitem class="protocal">SSH</systemitem> Tunnel</title>
1477                                 <para>In order to tell the Staff Client that all traffic should be sent
1478                                 through the <systemitem class="protocal">SSH</systemitem> tunnel just configured,
1479                                 you must find edit the file <filename>all.js</filename>, usually located at
1480                                 <filename>C:\Program Files\Evergreen Staff Client\greprefs\all.js</filename>
1481                                  on a  <systemitem class="osname">Windows</systemitem> system.
1482                                 Search this file for the word <literal>socks</literal> to find the appropriate
1483                                 section for the following changes.</para>
1484                                 <mediaobject>
1485                                         <alt>
1486                                                 <phrase>The SOCKS section of "all.js" before changes</phrase>
1487                                         </alt>
1488                                         <imageobject>
1489                                                 <imagedata fileref="../media/staffclientinstallation-proxy-socks-1.png" format="PNG" scalefit="1" width="70%"/>
1490                                         </imageobject>
1491                                 </mediaobject>
1492                                 <para>Make the following changes:</para>
1493                                 <itemizedlist>
1494                                         <listitem>
1495                                                 <para>Change the value of <literal>network.proxy.socks</literal> 
1496                                                 from <literal>""</literal> to <literal>localhost</literal>.</para>
1497                                         </listitem>
1498                                         <listitem>
1499                                                 <para>Change the value of <literal>network.proxy.socks_port</literal>
1500                                                 from <literal>0</literal> to <literal>9999</literal>.</para>
1501                                         </listitem>
1502                                 </itemizedlist>
1503                                 <mediaobject>
1504                                         <alt>
1505                                                 <phrase>The SOCKS section of "all.js" after changes</phrase>
1506                                         </alt>
1507                                         <imageobject>
1508                                                 <imagedata fileref="../media/staffclientinstallation-proxy-socks-2.png" format="PNG" scalefit="1" width="70%"/>
1509                                         </imageobject>
1510                                 </mediaobject>
1511                                 <para>If everything is working correctly, you should now be able to run 
1512                                 the Staff Client and all its data will be sent encrypted through the 
1513                                 <systemitem class="protocal">SSH</systemitem> tunnel you have just configured.</para>
1514                         </section>
1515                 </section>
1516                 <section>
1517                         <title>Navigating a Tabbed Interface</title>
1518                         <para>Like many popular current web browsers and other applications, the Staff Client
1519                         uses a "tabbed" interface. Tabs allow you to have several pages open at the same time
1520                         in a single window. This is easier to manage on your computer screen than multiple
1521                         windows, since you can easily switch between tabs in the same window.</para>
1522                         <mediaobject>
1523                                 <alt>
1524                                         <phrase>Tabs in the Staff Client window</phrase>
1525                                 </alt>
1526                                 <imageobject>
1527                                         <imagedata fileref="../media/staffclientinstallation-tabbed-1.png" format="PNG" scalefit="1" width="70%"/>
1528                                 </imageobject>
1529                         </mediaobject>
1530                         <para>The "tabs" appear below the menu bar in the Staff Client with a descriptive
1531                         title. Simply select a tab to bring it to the front and view the page displayed in the
1532                         tab. You can use tabs to have access to multiple things all at the same time: patron
1533                         records and searches, bibliographic records and searches, circulation or cataloging
1534                         interfaces - anything at all in the Staff Client.</para>
1535                         <itemizedlist>
1536                                 <listitem>Create a new tab by pressing
1537                                 <keycombo>
1538                                         <keycap>Ctrl</keycap>
1539                                         <keycap>T</keycap>
1540                                 </keycombo>
1541                                 on the keyboard or selecting:
1542                                 <menuchoice>
1543                                         <guimenu>File</guimenu>
1544                                         <guimenuitem>New Tab</guimenuitem>
1545                                 </menuchoice>
1546                                 from the menu.</listitem>
1547                                 <listitem>Close a tab by pressing
1548                                 <keycombo>
1549                                         <keycap>Ctrl</keycap>
1550                                         <keycap>W</keycap>
1551                                 </keycombo> on the keyboard or selecting
1552                                 <menuchoice>
1553                                         <guimenu>File</guimenu>
1554                                         <guimenuitem>Close Tab</guimenuitem>
1555                                 </menuchoice>
1556                                 from the menu.</listitem>
1557                                 <listitem>Switch tabs by pressing 
1558                                 <keycombo>
1559                                         <keycap>Ctrl</keycap>
1560                                         <keycap>Tab</keycap>
1561                                 </keycombo>
1562                                 on the keyboard or selecting the tab in the tab bar.</listitem>
1563                         </itemizedlist>
1564                 </section>
1565         </section>
1566 </chapter>