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