Bumping version numbers, adding Upgrade Script and Changelog
authorDan Wells <dbw2@calvin.edu>
Mon, 24 Feb 2014 17:16:50 +0000 (12:16 -0500)
committerDan Wells <dbw2@calvin.edu>
Mon, 24 Feb 2014 17:16:50 +0000 (12:16 -0500)
Signed-off-by: Dan Wells <dbw2@calvin.edu>
ChangeLog
Open-ILS/src/perlmods/lib/OpenILS/Application.pm
Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/version-upgrade/2.5.2-2.5.3-upgrade-db.sql [new file with mode: 0644]
Open-ILS/xul/staff_client/chrome/content/main/about.html
Open-ILS/xul/staff_client/defaults/preferences/prefs.js
Open-ILS/xul/staff_client/windowssetup.nsi
README [changed from symlink to file mode: 0644]
configure.ac

index 1f72b2c..3a083c8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,721 @@
-Evergreen doesn't keep a GNU-style ChangeLog except in release tarballs.
-Those seeking a change log are encouraged to run 'git log -v', or read
-it online at: http://git.evergreen-ils.org/?p=Evergreen.git;a=log
+commit a7839dcd4aac6b5b536f1f40ccd377aef2d38be5
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Mon Feb 24 12:09:57 2014 -0500
+
+    Bump OpenILS.pm version
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+1      1       Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit d970a8c7adac852ca5ddfa640b79d3df788ec2ae
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Fri Feb 21 16:34:58 2014 -0500
+
+    Stamping 0868 - 'behind_desk' fixes
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    
+    Conflicts:
+       Open-ILS/src/sql/Pg/002.schema.config.sql
+
+1      1       Open-ILS/src/sql/Pg/002.schema.config.sql
+189    0       Open-ILS/src/sql/Pg/upgrade/0868.schema.all_hold_behind_desk.sql
+0      187     Open-ILS/src/sql/Pg/upgrade/XXXX.schema.all_hold_behind_desk.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0868.schema.all_hold_behind_desk.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.all_hold_behind_desk.sql
+
+commit 1e1abbf21d5d603af25f89da1dfbcc1453d25780
+Author: Bill Erickson <berick@esilibrary.com>
+Date:   Tue Feb 18 14:16:40 2014 -0500
+
+    LP#1281744 Aged hold purging column repair
+    
+    Add missing non-NULLable "behind_desk" column to
+    action.all_hold_request, which is used during holds deletion and
+    archiving.
+    
+    Signed-off-by: Bill Erickson <berick@esilibrary.com>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+1      0       Open-ILS/examples/fm_IDL.xml
+8      4       Open-ILS/src/sql/Pg/090.schema.action.sql
+187    0       Open-ILS/src/sql/Pg/upgrade/XXXX.schema.all_hold_behind_desk.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.all_hold_behind_desk.sql
+
+commit b1e46967f749174499e7a7256e02a35e6888c760
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Thu Feb 20 10:13:07 2014 -0500
+
+    Stamping 0862 - changes for Encode.pm 2.54+
+    
+    Also, remove extra XXXX file which someone had preserved by mistake.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+1      1       Open-ILS/src/sql/Pg/002.schema.config.sql
+358    0       Open-ILS/src/sql/Pg/upgrade/0862.function.remove_extra_utf8_decodes.sql
+0      95      Open-ILS/src/sql/Pg/upgrade/XXXX.function.prox_adjust.sql
+0      356     Open-ILS/src/sql/Pg/upgrade/XXXX.function.remove_extra_utf8_decodes.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0862.function.remove_extra_utf8_decodes.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.prox_adjust.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.remove_extra_utf8_decodes.sql
+
+commit e10f6db44f2670e9457b35e5cb4c5b6cd983a629
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Jan 14 14:12:53 2014 -0500
+
+    Upgrade file for Encode.pm 2.54+ changes
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+
+356    0       Open-ILS/src/sql/Pg/upgrade/XXXX.function.remove_extra_utf8_decodes.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.remove_extra_utf8_decodes.sql
+
+commit 3b6ca22d02b20986bde345672896f04cd902913b
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Fri Oct 25 13:54:35 2013 -0400
+
+    Add pgTAP test for normalized MARC records
+    
+    Specifically, we're concerned about ensuring that any changes related to
+    the fix for Encode (requiring the removal of the effectively useless but
+    now erroring decode_utf8()) do not inadvertently change the content of
+    the MARC records on ingest. Because we wouldn't want to have to reingest
+    everything to normalize search, etc.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+6      0       Open-ILS/src/sql/Pg/t/README
+13     0       Open-ILS/src/sql/Pg/t/regress/lp1242999_unbreak_new_encode.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/regress/lp1242999_unbreak_new_encode.pg
+
+commit cb501cc75c9b9df3ad796b237ddaf435dc0e2125
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Thu Oct 24 17:44:00 2013 -0400
+
+    Test Perl Unicode normalization process
+    
+    Add some basic tests of our Unicode normalization (and entityization)
+    process.
+    
+    Also, 'use utf8;' tells the script that it contains UTF8 characters,
+    not binary bytes, and resolves a test problem.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+1      0       Open-ILS/src/perlmods/t/01-OpenILS-Application.t
+4      1       Open-ILS/src/perlmods/t/14-OpenILS-Utils.t
+
+commit 9fa85a2ebaded8dec0f5695f2eb60847a8760015
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Mon Oct 21 11:58:06 2013 -0400
+
+    Encode.pm change to the UTF8 flag
+    
+    In the past, decode_utf8() silently ignored attempts to decode data
+    with the UTF8 flag on. However, Encode.pm changed around 2.53 and
+    resulted in wide-character errors preventing the likes of
+    --load-all-sample from working.
+    
+    Since our data should already be UTF8 when it hits these functions, we
+    should not be trying to decode it in the first place.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+0      4       Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+3      3       Open-ILS/src/perlmods/lib/OpenILS/Utils/Normalize.pm
+2      10      Open-ILS/src/sql/Pg/002.functions.config.sql
+
+commit a4963a1da50cc38d23bdfb31ad89a6bb867371ef
+Author: Ben Shum <bshum@biblio.org>
+Date:   Sat Feb 8 03:42:07 2014 -0500
+
+    LP1125471 - Use label instead of id in recording in-house use prompt
+    
+    When recording multiple in-house use with the library settings for threshold
+    prompts, the prompt would bring up the ID as the variable instead of the name
+    of the non-cataloged material. This caused confusion among staff members who
+    might see a message like: "Are you sure you want to mark 9 as having been used
+    21 times?" (9 being the id, not the name of the non-cataloged material)
+    
+    This commit leverages existing code which had been commented out and under
+    the ID to use the label name for the non-cataloged material instead. Also,
+    minor bugfix with a missing semi-colon at the end of the function being used.
+    
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+    Signed-off-by: Bill Erickson <berick@esilibrary.com>
+
+1      2       Open-ILS/xul/staff_client/server/circ/in_house_use.js
+
+commit 201eff673138018df4ef9bf83f5916ab24a59790
+Author: Bill Erickson <berick@esilibrary.com>
+Date:   Mon Dec 30 13:49:01 2013 -0500
+
+    Vandelay: increase queued item creation timeout
+    
+    Allow up to 10 minutes to create each queued vandelay record to avoid
+    timeouts in item creation caused by pathologicaly long-running record
+    match set queries.
+    
+    Signed-off-by: Bill Erickson <berick@esilibrary.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+2      2       Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm
+
+commit 7693c0fc9bed8d97de74213c1fed7de796d9816d
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Thu Sep 12 13:26:21 2013 -0400
+
+    Keep standard INNER joins above possible OUTERs
+    
+    We always join metabib.record_attr, and we always use an INNER join
+    to the core table, so keep that join first.  Likewise with the join
+    to biblio.record_entry.  Dynamic joins may be OUTER, though, and while
+    join reordering in Postgres is smart, let's not give it the chance to
+    fail.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+
+commit 6a208fccd3cc6ecf1838acda03bc9f7723b4ed9c
+Author: Thomas Berezansky <tsbere@mvlc.org>
+Date:   Thu Jun 21 11:38:39 2012 -0400
+
+    Assume that future checkins are junk input
+    
+    This can happen with SIP2 clients with badly set clocks.
+    
+    Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+6      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 52b5b742fc4bfd984decb269fcda21ca787e96af
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Wed Feb 12 17:19:55 2014 -0500
+
+    LP1046026 - Fix duplicate rows in holds pull list
+    
+    If there are multiple CAPTURE-blocking penalties we could see dupes on the
+    pull list.  This avoids that.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+21     11      Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit abe60b4a14372ce99826b188912e07c76d88cc13
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Fri Nov 9 16:12:58 2012 -0500
+
+    Prevent odd TPAC base URL redirect
+    
+    As it stands, in a default install, if you browse to
+    
+    http://yourserver.com/eg/opac
+    
+    you are redirected to a login page, and if you login, you then get
+    to the 404 page. This behavior is caused by the fact that *any*
+    URLs which do not match a few select cases are assumed to be
+    "secure" resources, when in fact they might not even exist.
+    
+    This commit catches any attempt to browse this 'base' and simply
+    redirects to the "home" page instead.
+    
+    This addresses the most obvious and likely 404 of this type, but
+    we might consider catching some other cases (e.g. eg/opac/record/).
+    In addition (or as an alternative), we could also create a function
+    call which simply checks the validity of a URL before we ask the
+    user to login to see it.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Bill Erickson <berick@esilibrary.com>
+
+5      0       Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
+
+commit d3803a91197c8b8d0eec791016f2c2617c2ef085
+Author: Pasi Kallinen <pasi.kallinen@pttk.fi>
+Date:   Thu Sep 12 11:55:36 2013 +0300
+
+    Fix some javascript errors, trying to access nonexistent widgets
+    
+    Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
+    Signed-off-by: Melissa Ceraso <mceraso@biblio.org>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+3      0       Open-ILS/web/js/ui/default/actor/user/register.js
+
+commit d31f13efa5ae244f4a0aaf520d06cb9edd1c738b
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Fri Feb 7 16:00:01 2014 -0500
+
+    Include calculated 0-prox locations in the stalling interval for op capture
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 8c660f9483e3b9285e8178816460530d4b355845
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Tue Jan 21 12:31:13 2014 -0500
+
+    Use copy owning library as the context for finding best hold sort order setting
+    
+    In the olden days before best hold sort order and proximity adjustment, there was
+    no need to consider any context org other than "here", because the choices were,
+    essentially, FIFO or Traditional applied within the hard-boundary range.  However,
+    now we need to decided whose rule to follow, and the most correct arbiter of that
+    is the owning library of the call number of the copy.  We avoid copy circ lib
+    because that can change with floating copies.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+8      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit bc0a3bed1fcca684d96a925547b962d597cdc692
+Author: Kyle Tomita <tomitakyle@gmail.com>
+Date:   Wed Feb 5 16:23:18 2014 -0800
+
+    LP1155769: Items repeated in tpac display, others not visible
+    
+    This was an issue with the query and ordering by a column that was
+    sometimes null (copy_number).  Added barcode to be a sort rather than
+    replacing copy_number, per bshum's suggestion.  Not replacing allows
+    libraries that use copy_number to continue to use them as well.
+    
+    Signed-off-by: Kyle Tomita <tomitakyle@gmail.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+2      1       Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+
+commit 9f5d177da1549c5b4dfef310d7f497434580651c
+Author: Bill Erickson <berick@esilibrary.com>
+Date:   Thu Jan 9 11:24:08 2014 -0500
+
+    LP#1164720 Prevent empty names in TPAC lists
+    
+    Form submission for list creation with an empty name value now prevents
+    list creation and redirects the user to a new error page explaining why
+    list creation failed.
+    
+    Signed-off-by: Bill Erickson <berick@esilibrary.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+34     23      Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
+44     0       Open-ILS/src/templates/opac/myopac/list/update.tt2
+ create mode 100644 Open-ILS/src/templates/opac/myopac/list/update.tt2
+
+commit 0d9a8ca786553e5eadf31b63eccdc4ed2d9bf3db
+Author: Jeff Godin <jgodin@tadl.org>
+Date:   Wed Oct 30 13:20:28 2013 -0400
+
+    Skip duplicate username check when username unchanged
+    
+    Changing a username, then changing back to the user's current
+    username results in a duplicate username detection -- a false
+    positive due to the API call finding a user with that username --
+    the current user. This prevents you from saving any other changes
+    you may have made to the user.
+    
+    This can be prevented by skipping the duplicate username check if
+    the user is not new and the username in the field matches the
+    username stored in the in-memory Javascript representation of the
+    user.
+    
+    There's still a potential corner case which could be avoided by
+    using a new/modified API call to either accept an "except this
+    au.id" argument or to return the au.id of the found user, but I
+    don't see a need for that at this point.
+    
+    Signed-off-by: Jeff Godin <jgodin@tadl.org>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+3      1       Open-ILS/web/js/ui/default/actor/user/register.js
+
+commit 100e76adcad2733534c9435218eafffca95f8341
+Author: Ben Shum <bshum@biblio.org>
+Date:   Tue Jan 21 13:52:49 2014 -0500
+
+    LP1271218 - clarify how opt-in user notifications are shown in my account
+    
+    As reported in LP127128, end users may not need to be shown the message that
+    "No notification preferences are configured" when in fact this message is only
+    displayed when the user opt-in notification settings are not configured.
+    
+    So, alter this to only show the table and div when there are settings to be
+    configured and otherwise show nothing.
+    
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+2      4       Open-ILS/src/templates/opac/myopac/prefs_notify.tt2
+
+commit fd3703addeea60323487c7281e380eff85cb04d9
+Author: Ben Shum <bshum@biblio.org>
+Date:   Fri Jan 31 15:54:02 2014 -0500
+
+    Revert "Eliminate an annoying and useless warning in the JavaScript Console."
+    
+    This reverts commit 88cd3947a1b8394bd0307cbd2f6eedb8e98e3668.
+    
+    My fault for picking this in without more testing. This broke things like noted
+    in LP1275074.
+
+53     55      Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
+
+commit 568d36c14d6939845ea2176c795bf0f45ef4bdab
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Mon Jan 27 10:50:31 2014 -0500
+
+    Include RFID docs with full path
+    
+    Ben Shum noticed that the RFID docs weren't showing up in the documentation; we
+    need to include the full relative path to the RFID docs.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+1      1       docs/root.txt
+
+commit d5d616410e97c90e0e7645b69263206d51218270
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Thu Jan 23 10:04:01 2014 -0500
+
+    Forward port 2.5.2 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+234    0       Open-ILS/src/sql/Pg/version-upgrade/2.5.1-2.5.2-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.5.1-2.5.2-upgrade-db.sql
+
+commit b552d7cd4eee99cf412512c7d56894af1032b9a9
+Author: Remington Steed <rjs7@calvin.edu>
+Date:   Wed Nov 27 09:55:35 2013 -0500
+
+    LP#842991 Reports needs to error when deleting fails
+    
+    When attempting to delete a report template, the reports interface
+    incorrectly shows "Action Succeeded" even when it partly fails. If the
+    user performing the delete does not own all the dependent reports and
+    outputs, then the perl function returns 1 to indicate that some were
+    deleted, but not all. However, the javascript that calls that function
+    does not check for a return value of 1. This commit adds that check, and
+    also improves the formatting of the related error messages.
+    
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+6      2       Open-ILS/web/opac/locale/en-US/reports.dtd
+1      0       Open-ILS/web/reports/oils_rpt_folder_window.js
+
+commit ddc49a508f2401d0ab2a73a5a1bb68a90297b59a
+Author: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
+Date:   Mon Oct 28 14:28:37 2013 -0400
+
+    Serials: improve routing slips per Dan Wells' suggestions on LP #1229349
+    
+      - Don't repeat the same address for the same user
+      - Label mailing vs. billing
+      - Border to separate mailing and billing addresses
+      - [Also] move some inline styles to a CSS file
+    
+    Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+
+3      0       Open-ILS/src/templates/serial/print_routing_list_users.tt2
+5      0       Open-ILS/web/css/skin/default/serial.css
+7      6       Open-ILS/web/js/ui/default/serial/print_routing_list_users.js
+
+commit 514bf65c33ed963d56f78c70823e8598b58cbe99
+Author: Steven Callender <stevecallender@esilibrary.com>
+Date:   Thu Oct 10 16:09:06 2013 -0400
+
+    Fixed title/author display at checkout for non-pre-cat items.
+    
+    Fixed a display problem on checkout where items that were formely pre-cats
+    were still displaying the pre-cat data. Now it will make sure the item is
+    still a pre-cat before using the dummy data.
+    
+    Signed-off-by: Steven Callender <stevecallender@esilibrary.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+8      6       Open-ILS/xul/staff_client/server/circ/checkout.js
+
+commit 943c243757a70692b8c5d4bc7bac36b0ba7db70e
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Wed Jan 15 22:33:25 2014 -0500
+
+    TPAC: Display authors using inline-block
+    
+    Rather than letting author credits wrap willy-nilly, use inline-block mode so
+    that each line will begin with a new author. Devices with constrained screens
+    in particular benefit from this, as the list of authors is much easier to scan,
+    and wider screens can still fit multiple authors on a single line.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+4      1       Open-ILS/src/templates/opac/css/style.css.tt2
+
+commit 2689b143b27812d7dcbc4501fa3eea777b8a747e
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Wed Jan 15 15:25:02 2014 -0500
+
+    TPAC: Use indexed subfields only in author search links
+    
+    Addresses LP# 1267231 in which we found that the titles of works in the added
+    author field (such as subfield t) were showing up in the link ahead of the
+    author's birth and death date (if applicable). Now we reserve the link for
+    only the indexed author subfields (depends on whether the name is personal,
+    corporate, or conference, but generally subfields a/b/c/d/e/n/q), then the
+    extra subfields go after the name + dates, then we finally put the relationship
+    into the parentheses after everything else.
+    
+    We also simplify the markup so that each name is contained in a single <span
+    class="rdetail_author_div"> element to make it easier to control the layout.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+70     33      Open-ILS/src/templates/opac/parts/record/authors.tt2
+
+commit 8ba3dbe65fab98379058e90fd6fd984ed6d86a3b
+Author: Robert Soulliere <robert.soulliere@mohawkcollege.ca>
+Date:   Tue Jan 21 13:04:08 2014 -0500
+
+    Documentation: Update upgrade instructions to 2.5.2
+    
+    Update instructions to point ot latest release in 2.5 series.
+    Fix download location which was pointing to preview directory and not the stable release download directory.
+    
+    Signed-off-by: Robert Soulliere <robert.soulliere@mohawkcollege.ca>
+
+13     12      docs/installation/server_upgrade.txt
+
+commit d4d4006742e1c0138a11825ec6bb9066fcb014f6
+Author: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
+Date:   Thu Nov 14 15:59:55 2013 -0500
+
+    Serials: Batch Receive interface Copy Location widget was inert
+    
+    Choosing a value from the Copy Location widget wasn't working.  You'd
+    get a default copy location (or the one supplied by the Receive Unit
+    Copy Template) no matter what you set that control too.
+    
+    This is fixed.  One does not read from XUL menulist element by using its
+    'value' property.
+    
+    Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+
+2      1       Open-ILS/xul/staff_client/server/serial/batch_receive.js
+
+commit 35138ea9811f166bf5c01d42879b3b9320d9053f
+Author: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
+Date:   Wed Jan 15 17:53:25 2014 -0500
+
+    LP#882586: In Serial Control View, show copy templates owned by ancestors
+    
+    When creating/editing distributions, dropdowns for Receive Unit Template
+    and Bind Unit Template now show copy templates owned not only at the
+    distribution's holding lib, but at any of the holding lib's ancestors.
+    
+    Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+17     1       Open-ILS/xul/staff_client/chrome/content/util/fm_utils.js
+13     1       Open-ILS/xul/staff_client/server/serial/sdist_editor.js
+
+commit 79e415a41d831895c81eb3e6611bdbf880b373ec
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Mon Jan 20 11:33:50 2014 -0500
+
+    Pull forward previous upgrade scripts
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+
+5      0       Open-ILS/src/sql/Pg/version-upgrade/2.4.4-2.4.5-upgrade-db.sql
+193    0       Open-ILS/src/sql/Pg/version-upgrade/2.4.5-2.4.6-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.4.4-2.4.5-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.4.5-2.4.6-upgrade-db.sql
+
+commit d0096fd02fef055ed4952e5b9e39621b7bf3c2a5
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Sun Jan 19 22:24:07 2014 -0500
+
+    Create 008 - take only the first field/subfield combo
+    
+    In the event that there were multiple $a subfields in, say, 044, the create 008
+    function could spew raw XML into the 008 field. Avoid that by taking the primary
+    instance.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+3      3       Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit ac4de90cb9397361ef5a35093e2e682b0766a127
+Author: Pasi Kallinen <pasi.kallinen@pttk.fi>
+Date:   Thu Jul 18 21:00:31 2013 +0300
+
+    Allow generating fixed data in control field 008 quickly
+    
+    Language and country codes come from 041a and 044a,
+    Date1 comes from 260c, and the record date is set to current day.
+    
+    Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+    
+    Conflicts:
+       Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+56     1       Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit fc0401eaf30e7dc998d166f9511684356d939516
+Author: Galen Charlton <gmc@esilibrary.com>
+Date:   Fri Oct 4 14:44:56 2013 -0700
+
+    LP#1235474: fix failure of authority browse context menu to render
+    
+    This patch fixes a situation where if an authority record that would
+    be brought up by the authority browse context menu in the MARC editor
+    lacks an 003 field, the context menu would not be rendered all, meaning
+    that the default context menu (e.g., cut/copy/paste/etc.) would be
+    displayed instead.
+    
+    Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+4      1       Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit b896b490a45f3abc8a94ee173028428ca432bd4c
+Author: Pasi Kallinen <pasi.kallinen@pttk.fi>
+Date:   Tue Jun 18 09:01:30 2013 +0300
+
+    Move hard-coded style out of the copy status layout.
+    
+    Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+5      5       Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul
+6      0       Open-ILS/xul/staff_client/server/skin/circ.css
+
+commit e2d8c946e1a360641736abb5efd0720caa80033f
+Author: Elliot Voris <evoris@slcconline.edu>
+Date:   Mon Dec 9 12:57:20 2013 -0600
+
+    LP104785: Selfcheck needs to be run with HTTPS
+    
+    Redirect attempts to connect to the self-check via HTTP to the more secure
+    HTTPS instead. Addresses this bug reported in launchpad:
+    https://bugs.launchpad.net/evergreen/+bug/1047485
+    
+    Based on work for Apache 2.2 by Michael Peters <mrpeters@library.in.gov>,
+    updated and applied to 2.4 by Elliot Voris.
+    
+    Signed-off-by: Elliot Voris <evoris@slcconline.edu>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+6      0       Open-ILS/examples/apache/eg_vhost.conf.in
+6      0       Open-ILS/examples/apache_24/eg_vhost.conf.in
+
+commit b080b36bfbbf8e93779cec663cfb31c4b05fa97d
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Sun Jan 19 13:52:20 2014 -0500
+
+    More explicit database configuration instructions
+    
+    These README tweaks should help new folk install Evergreen with
+    a few less hurdles.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+37     7       docs/installation/server_installation.txt
+
+commit cb39d6eeef313d9a68a4ffddbd255e05ecc01594
+Author: Dan Scott <dscott@laurentian.ca>
+Date:   Sun Jan 19 11:30:57 2014 -0500
+
+    Fedora: Net::SSLeay 1.55 is too new for Net::HTTPS::Any
+    
+    Although Net::HTTPS:Any wants Net:SSLeay 1.30 or later, 1.55 is apparently too
+    late, or something. The alternative is Crypt::SSLeay, which seems to work, so
+    let's go with that.
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+1      0       Open-ILS/src/extras/install/Makefile.fedora
+
+commit ba84e2b86b28aac8d1c0d77a1fffe7500069747b
+Author: Bill Erickson <berick@esilibrary.com>
+Date:   Thu Jan 16 13:03:34 2014 -0500
+
+    LP#1269884 repair MVR id / doc_id thinko
+    
+    Signed-off-by: Bill Erickson <berick@esilibrary.com>
+    Signed-off-by: Ben Shum <bshum@biblio.org>
+
+1      1       Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js
+
+commit 60e0f5af07d1b0bd606526c6284e8e8c7e749c94
+Author: Pasi Kallinen <pasi.kallinen@pttk.fi>
+Date:   Fri Jun 28 08:47:11 2013 +0300
+
+    Replace deprecated javascript escape() with encodeURIComponent()
+    
+    Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi>
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+    
+    Conflicts:
+       Open-ILS/xul/staff_client/chrome/content/auth/controller.js
+       Open-ILS/xul/staff_client/chrome/content/util/error.js
+       Open-ILS/xul/staff_client/chrome/content/util/print.js
+       Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js
+       Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js
+    
+    Signed-off-by: Dan Scott <dscott@laurentian.ca>
+
+6      6       Open-ILS/web/js/dojo/openils/BibTemplate.js
+1      1       Open-ILS/web/js/dojo/openils/XUL.js
+1      1       Open-ILS/web/js/ui/default/acq/common/li_table.js
+1      1       Open-ILS/web/js/ui/default/conify/global/config/z3950_source.js
+1      1       Open-ILS/web/js/ui/default/conify/global/vandelay/import_bib_trash_group.js
+5      5       Open-ILS/web/opac/common/js/dtree.js
+1      1       Open-ILS/web/opac/skin/default/js/result_common.js
+1      1       Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_chrome.xul
+1      1       Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_offline.xul
+14     14      Open-ILS/xul/staff_client/chrome/content/cat/opac.js
+2      2       Open-ILS/xul/staff_client/chrome/content/main/main.js
+17     18      Open-ILS/xul/staff_client/chrome/content/main/menu.js
+2      2       Open-ILS/xul/staff_client/chrome/content/util/error.js
+3      3       Open-ILS/xul/staff_client/chrome/content/util/list.js
+0      10      Open-ILS/xul/staff_client/chrome/content/util/network.js
+1      1       Open-ILS/xul/staff_client/server/OpenILS/util_overlay.xul
+14     25      Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js
+1      1       Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js
+0      2       Open-ILS/xul/staff_client/server/cat/copy_browser.js
+0      1       Open-ILS/xul/staff_client/server/cat/copy_editor.js
+0      3       Open-ILS/xul/staff_client/server/cat/record_buckets.js
+0      1       Open-ILS/xul/staff_client/server/cat/spine_labels.js
+1      3       Open-ILS/xul/staff_client/server/cat/util.js
+0      3       Open-ILS/xul/staff_client/server/cat/z3950.js
+0      2       Open-ILS/xul/staff_client/server/circ/circ_brief.xul
+0      2       Open-ILS/xul/staff_client/server/circ/copy_status.js
+1      1       Open-ILS/xul/staff_client/server/circ/util.js
+2      2       Open-ILS/xul/staff_client/server/patron/barcode_entry.xul
+4      17      Open-ILS/xul/staff_client/server/patron/display.js
+2      22      Open-ILS/xul/staff_client/server/patron/holds.js
+2      8       Open-ILS/xul/staff_client/server/patron/info_group.js
+0      2       Open-ILS/xul/staff_client/server/patron/items.js
+0      2       Open-ILS/xul/staff_client/server/serial/manage_dists.js
+0      2       Open-ILS/xul/staff_client/server/serial/manage_subs.js
+0      1       Open-ILS/xul/staff_client/server/serial/sdist_editor.js
+0      1       Open-ILS/xul/staff_client/server/serial/sitem_editor.js
index d750216..64b84f3 100644 (file)
@@ -7,7 +7,7 @@ use OpenILS::Utils::Fieldmapper;
 sub ils_version {
     # version format is "x-y-z", for example "2-0-0" for Evergreen 2.0.0
     # For branches, format is "x-y"
-    return "HEAD";
+    return "2-5-3";
 }
 
 __PACKAGE__->register_method(
index f4257c7..4b047b3 100644 (file)
@@ -92,6 +92,7 @@ CREATE TRIGGER no_overlapping_deps
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0868', :eg_version); -- berick/dbwells
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.5.3', :eg_version);
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.5.2-2.5.3-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.5.2-2.5.3-upgrade-db.sql
new file mode 100644 (file)
index 0000000..c901c8e
--- /dev/null
@@ -0,0 +1,548 @@
+--Upgrade Script for 2.5.2 to 2.5.3
+\set eg_version '''2.5.3'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.5.3', :eg_version);
+
+-- this file is a duplicate of 0851, moved up for better backport clarity
+
+-- check whether patch can be applied
+SELECT evergreen.upgrade_deps_block_check('0862', :eg_version);
+
+CREATE OR REPLACE FUNCTION evergreen.maintain_901 () RETURNS TRIGGER AS $func$
+use strict;
+use MARC::Record;
+use MARC::File::XML (BinaryEncoding => 'UTF-8');
+use MARC::Charset;
+use Encode;
+use Unicode::Normalize;
+
+MARC::Charset->assume_unicode(1);
+
+my $schema = $_TD->{table_schema};
+my $marc = MARC::Record->new_from_xml($_TD->{new}{marc});
+
+my @old901s = $marc->field('901');
+$marc->delete_fields(@old901s);
+
+if ($schema eq 'biblio') {
+    my $tcn_value = $_TD->{new}{tcn_value};
+
+    # Set TCN value to record ID?
+    my $id_as_tcn = spi_exec_query("
+        SELECT enabled
+        FROM config.global_flag
+        WHERE name = 'cat.bib.use_id_for_tcn'
+    ");
+    if (($id_as_tcn->{processed}) && $id_as_tcn->{rows}[0]->{enabled} eq 't') {
+        $tcn_value = $_TD->{new}{id}; 
+        $_TD->{new}{tcn_value} = $tcn_value;
+    }
+
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "a" => $tcn_value,
+        "b" => $_TD->{new}{tcn_source},
+        "c" => $_TD->{new}{id},
+        "t" => $schema
+    );
+
+    if ($_TD->{new}{owner}) {
+        $new_901->add_subfields("o" => $_TD->{new}{owner});
+    }
+
+    if ($_TD->{new}{share_depth}) {
+        $new_901->add_subfields("d" => $_TD->{new}{share_depth});
+    }
+
+    $marc->append_fields($new_901);
+} elsif ($schema eq 'authority') {
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "c" => $_TD->{new}{id},
+        "t" => $schema,
+    );
+    $marc->append_fields($new_901);
+} elsif ($schema eq 'serial') {
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "c" => $_TD->{new}{id},
+        "t" => $schema,
+        "o" => $_TD->{new}{owning_lib},
+    );
+
+    if ($_TD->{new}{record}) {
+        $new_901->add_subfields("r" => $_TD->{new}{record});
+    }
+
+    $marc->append_fields($new_901);
+} else {
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "c" => $_TD->{new}{id},
+        "t" => $schema,
+    );
+    $marc->append_fields($new_901);
+}
+
+my $xml = $marc->as_xml_record();
+$xml =~ s/\n//sgo;
+$xml =~ s/^<\?xml.+\?\s*>//go;
+$xml =~ s/>\s+</></go;
+$xml =~ s/\p{Cc}//go;
+
+# Embed a version of OpenILS::Application::AppUtils->entityize()
+# to avoid having to set PERL5LIB for PostgreSQL as well
+
+$xml = NFC($xml);
+
+# Convert raw ampersands to entities
+$xml =~ s/&(?!\S+;)/&amp;/gso;
+
+# Convert Unicode characters to entities
+$xml =~ s/([\x{0080}-\x{fffd}])/sprintf('&#x%X;',ord($1))/sgoe;
+
+$xml =~ s/[\x00-\x1f]//go;
+$_TD->{new}{marc} = $xml;
+
+return "MODIFY";
+$func$ LANGUAGE PLPERLU;
+
+CREATE OR REPLACE FUNCTION maintain_control_numbers() RETURNS TRIGGER AS $func$
+use strict;
+use MARC::Record;
+use MARC::File::XML (BinaryEncoding => 'UTF-8');
+use MARC::Charset;
+use Encode;
+use Unicode::Normalize;
+
+MARC::Charset->assume_unicode(1);
+
+my $record = MARC::Record->new_from_xml($_TD->{new}{marc});
+my $schema = $_TD->{table_schema};
+my $rec_id = $_TD->{new}{id};
+
+# Short-circuit if maintaining control numbers per MARC21 spec is not enabled
+my $enable = spi_exec_query("SELECT enabled FROM config.global_flag WHERE name = 'cat.maintain_control_numbers'");
+if (!($enable->{processed}) or $enable->{rows}[0]->{enabled} eq 'f') {
+    return;
+}
+
+# Get the control number identifier from an OU setting based on $_TD->{new}{owner}
+my $ou_cni = 'EVRGRN';
+
+my $owner;
+if ($schema eq 'serial') {
+    $owner = $_TD->{new}{owning_lib};
+} else {
+    # are.owner and bre.owner can be null, so fall back to the consortial setting
+    $owner = $_TD->{new}{owner} || 1;
+}
+
+my $ous_rv = spi_exec_query("SELECT value FROM actor.org_unit_ancestor_setting('cat.marc_control_number_identifier', $owner)");
+if ($ous_rv->{processed}) {
+    $ou_cni = $ous_rv->{rows}[0]->{value};
+    $ou_cni =~ s/"//g; # Stupid VIM syntax highlighting"
+} else {
+    # Fall back to the shortname of the OU if there was no OU setting
+    $ous_rv = spi_exec_query("SELECT shortname FROM actor.org_unit WHERE id = $owner");
+    if ($ous_rv->{processed}) {
+        $ou_cni = $ous_rv->{rows}[0]->{shortname};
+    }
+}
+
+my ($create, $munge) = (0, 0);
+
+my @scns = $record->field('035');
+
+foreach my $id_field ('001', '003') {
+    my $spec_value;
+    my @controls = $record->field($id_field);
+
+    if ($id_field eq '001') {
+        $spec_value = $rec_id;
+    } else {
+        $spec_value = $ou_cni;
+    }
+
+    # Create the 001/003 if none exist
+    if (scalar(@controls) == 1) {
+        # Only one field; check to see if we need to munge it
+        unless (grep $_->data() eq $spec_value, @controls) {
+            $munge = 1;
+        }
+    } else {
+        # Delete the other fields, as with more than 1 001/003 we do not know which 003/001 to match
+        foreach my $control (@controls) {
+            $record->delete_field($control);
+        }
+        $record->insert_fields_ordered(MARC::Field->new($id_field, $spec_value));
+        $create = 1;
+    }
+}
+
+my $cn = $record->field('001')->data();
+# Special handling of OCLC numbers, often found in records that lack 003
+if ($cn =~ /^o(c[nm]|n)\d/) {
+    $cn =~ s/^o(c[nm]|n)0*(\d+)/$2/;
+    $record->field('003')->data('OCoLC');
+    $create = 0;
+}
+
+# Now, if we need to munge the 001, we will first push the existing 001/003
+# into the 035; but if the record did not have one (and one only) 001 and 003
+# to begin with, skip this process
+if ($munge and not $create) {
+
+    my $scn = "(" . $record->field('003')->data() . ")" . $cn;
+
+    # Do not create duplicate 035 fields
+    unless (grep $_->subfield('a') eq $scn, @scns) {
+        $record->insert_fields_ordered(MARC::Field->new('035', '', '', 'a' => $scn));
+    }
+}
+
+# Set the 001/003 and update the MARC
+if ($create or $munge) {
+    $record->field('001')->data($rec_id);
+    $record->field('003')->data($ou_cni);
+
+    my $xml = $record->as_xml_record();
+    $xml =~ s/\n//sgo;
+    $xml =~ s/^<\?xml.+\?\s*>//go;
+    $xml =~ s/>\s+</></go;
+    $xml =~ s/\p{Cc}//go;
+
+    # Embed a version of OpenILS::Application::AppUtils->entityize()
+    # to avoid having to set PERL5LIB for PostgreSQL as well
+
+    $xml = NFC($xml);
+
+    # Convert raw ampersands to entities
+    $xml =~ s/&(?!\S+;)/&amp;/gso;
+
+    # Convert Unicode characters to entities
+    $xml =~ s/([\x{0080}-\x{fffd}])/sprintf('&#x%X;',ord($1))/sgoe;
+
+    $xml =~ s/[\x00-\x1f]//go;
+    $_TD->{new}{marc} = $xml;
+
+    return "MODIFY";
+}
+
+return;
+$func$ LANGUAGE PLPERLU;
+
+CREATE OR REPLACE FUNCTION public.naco_normalize( TEXT, TEXT ) RETURNS TEXT AS $func$
+
+    use strict;
+    use Unicode::Normalize;
+    use Encode;
+
+    my $str = shift;
+    my $sf = shift;
+
+    # Apply NACO normalization to input string; based on
+    # http://www.loc.gov/catdir/pcc/naco/SCA_PccNormalization_Final_revised.pdf
+    #
+    # Note that unlike a strict reading of the NACO normalization rules,
+    # output is returned as lowercase instead of uppercase for compatibility
+    # with previous versions of the Evergreen naco_normalize routine.
+
+    # Convert to upper-case first; even though final output will be lowercase, doing this will
+    # ensure that the German eszett (ß) and certain ligatures (ff, fi, ffl, etc.) will be handled correctly.
+    # If there are any bugs in Perl's implementation of upcasing, they will be passed through here.
+    $str = uc $str;
+
+    # remove non-filing strings
+    $str =~ s/\x{0098}.*?\x{009C}//g;
+
+    $str = NFKD($str);
+
+    # additional substitutions - 3.6.
+    $str =~ s/\x{00C6}/AE/g;
+    $str =~ s/\x{00DE}/TH/g;
+    $str =~ s/\x{0152}/OE/g;
+    $str =~ tr/\x{0110}\x{00D0}\x{00D8}\x{0141}\x{2113}\x{02BB}\x{02BC}]['/DDOLl/d;
+
+    # transformations based on Unicode category codes
+    $str =~ s/[\p{Cc}\p{Cf}\p{Co}\p{Cs}\p{Lm}\p{Mc}\p{Me}\p{Mn}]//g;
+
+       if ($sf && $sf =~ /^a/o) {
+               my $commapos = index($str, ',');
+               if ($commapos > -1) {
+                       if ($commapos != length($str) - 1) {
+                $str =~ s/,/\x07/; # preserve first comma
+                       }
+               }
+       }
+
+    # since we've stripped out the control characters, we can now
+    # use a few as placeholders temporarily
+    $str =~ tr/+&@\x{266D}\x{266F}#/\x01\x02\x03\x04\x05\x06/;
+    $str =~ s/[\p{Pc}\p{Pd}\p{Pe}\p{Pf}\p{Pi}\p{Po}\p{Ps}\p{Sk}\p{Sm}\p{So}\p{Zl}\p{Zp}\p{Zs}]/ /g;
+    $str =~ tr/\x01\x02\x03\x04\x05\x06\x07/+&@\x{266D}\x{266F}#,/;
+
+    # decimal digits
+    $str =~ tr/\x{0660}-\x{0669}\x{06F0}-\x{06F9}\x{07C0}-\x{07C9}\x{0966}-\x{096F}\x{09E6}-\x{09EF}\x{0A66}-\x{0A6F}\x{0AE6}-\x{0AEF}\x{0B66}-\x{0B6F}\x{0BE6}-\x{0BEF}\x{0C66}-\x{0C6F}\x{0CE6}-\x{0CEF}\x{0D66}-\x{0D6F}\x{0E50}-\x{0E59}\x{0ED0}-\x{0ED9}\x{0F20}-\x{0F29}\x{1040}-\x{1049}\x{1090}-\x{1099}\x{17E0}-\x{17E9}\x{1810}-\x{1819}\x{1946}-\x{194F}\x{19D0}-\x{19D9}\x{1A80}-\x{1A89}\x{1A90}-\x{1A99}\x{1B50}-\x{1B59}\x{1BB0}-\x{1BB9}\x{1C40}-\x{1C49}\x{1C50}-\x{1C59}\x{A620}-\x{A629}\x{A8D0}-\x{A8D9}\x{A900}-\x{A909}\x{A9D0}-\x{A9D9}\x{AA50}-\x{AA59}\x{ABF0}-\x{ABF9}\x{FF10}-\x{FF19}/0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-9/;
+
+    # intentionally skipping step 8 of the NACO algorithm; if the string
+    # gets normalized away, that's fine.
+
+    # leading and trailing spaces
+    $str =~ s/\s+/ /g;
+    $str =~ s/^\s+//;
+    $str =~ s/\s+$//g;
+
+    return lc $str;
+$func$ LANGUAGE 'plperlu' STRICT IMMUTABLE;
+
+-- Currently, the only difference from naco_normalize is that search_normalize
+-- turns apostrophes into spaces, while naco_normalize collapses them.
+CREATE OR REPLACE FUNCTION public.search_normalize( TEXT, TEXT ) RETURNS TEXT AS $func$
+
+    use strict;
+    use Unicode::Normalize;
+    use Encode;
+
+    my $str = shift;
+    my $sf = shift;
+
+    # Apply NACO normalization to input string; based on
+    # http://www.loc.gov/catdir/pcc/naco/SCA_PccNormalization_Final_revised.pdf
+    #
+    # Note that unlike a strict reading of the NACO normalization rules,
+    # output is returned as lowercase instead of uppercase for compatibility
+    # with previous versions of the Evergreen naco_normalize routine.
+
+    # Convert to upper-case first; even though final output will be lowercase, doing this will
+    # ensure that the German eszett (ß) and certain ligatures (ff, fi, ffl, etc.) will be handled correctly.
+    # If there are any bugs in Perl's implementation of upcasing, they will be passed through here.
+    $str = uc $str;
+
+    # remove non-filing strings
+    $str =~ s/\x{0098}.*?\x{009C}//g;
+
+    $str = NFKD($str);
+
+    # additional substitutions - 3.6.
+    $str =~ s/\x{00C6}/AE/g;
+    $str =~ s/\x{00DE}/TH/g;
+    $str =~ s/\x{0152}/OE/g;
+    $str =~ tr/\x{0110}\x{00D0}\x{00D8}\x{0141}\x{2113}\x{02BB}\x{02BC}][/DDOLl/d;
+
+    # transformations based on Unicode category codes
+    $str =~ s/[\p{Cc}\p{Cf}\p{Co}\p{Cs}\p{Lm}\p{Mc}\p{Me}\p{Mn}]//g;
+
+       if ($sf && $sf =~ /^a/o) {
+               my $commapos = index($str, ',');
+               if ($commapos > -1) {
+                       if ($commapos != length($str) - 1) {
+                $str =~ s/,/\x07/; # preserve first comma
+                       }
+               }
+       }
+
+    # since we've stripped out the control characters, we can now
+    # use a few as placeholders temporarily
+    $str =~ tr/+&@\x{266D}\x{266F}#/\x01\x02\x03\x04\x05\x06/;
+    $str =~ s/[\p{Pc}\p{Pd}\p{Pe}\p{Pf}\p{Pi}\p{Po}\p{Ps}\p{Sk}\p{Sm}\p{So}\p{Zl}\p{Zp}\p{Zs}]/ /g;
+    $str =~ tr/\x01\x02\x03\x04\x05\x06\x07/+&@\x{266D}\x{266F}#,/;
+
+    # decimal digits
+    $str =~ tr/\x{0660}-\x{0669}\x{06F0}-\x{06F9}\x{07C0}-\x{07C9}\x{0966}-\x{096F}\x{09E6}-\x{09EF}\x{0A66}-\x{0A6F}\x{0AE6}-\x{0AEF}\x{0B66}-\x{0B6F}\x{0BE6}-\x{0BEF}\x{0C66}-\x{0C6F}\x{0CE6}-\x{0CEF}\x{0D66}-\x{0D6F}\x{0E50}-\x{0E59}\x{0ED0}-\x{0ED9}\x{0F20}-\x{0F29}\x{1040}-\x{1049}\x{1090}-\x{1099}\x{17E0}-\x{17E9}\x{1810}-\x{1819}\x{1946}-\x{194F}\x{19D0}-\x{19D9}\x{1A80}-\x{1A89}\x{1A90}-\x{1A99}\x{1B50}-\x{1B59}\x{1BB0}-\x{1BB9}\x{1C40}-\x{1C49}\x{1C50}-\x{1C59}\x{A620}-\x{A629}\x{A8D0}-\x{A8D9}\x{A900}-\x{A909}\x{A9D0}-\x{A9D9}\x{AA50}-\x{AA59}\x{ABF0}-\x{ABF9}\x{FF10}-\x{FF19}/0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-9/;
+
+    # intentionally skipping step 8 of the NACO algorithm; if the string
+    # gets normalized away, that's fine.
+
+    # leading and trailing spaces
+    $str =~ s/\s+/ /g;
+    $str =~ s/^\s+//;
+    $str =~ s/\s+$//g;
+
+    return lc $str;
+$func$ LANGUAGE 'plperlu' STRICT IMMUTABLE;
+
+-- add missing behind_desk column
+
+
+SELECT evergreen.upgrade_deps_block_check('0868', :eg_version);
+
+CREATE OR REPLACE VIEW action.all_hold_request AS
+    SELECT DISTINCT
+           COALESCE(a.post_code, b.post_code) AS usr_post_code,
+           p.home_ou AS usr_home_ou,
+           p.profile AS usr_profile,
+           EXTRACT(YEAR FROM p.dob)::INT AS usr_birth_year,
+           CAST(ahr.requestor <> ahr.usr AS BOOLEAN) AS staff_placed,
+           ahr.id,
+           ahr.request_time,
+           ahr.capture_time,
+           ahr.fulfillment_time,
+           ahr.checkin_time,
+           ahr.return_time,
+           ahr.prev_check_time,
+           ahr.expire_time,
+           ahr.cancel_time,
+           ahr.cancel_cause,
+           ahr.cancel_note,
+           ahr.target,
+           ahr.current_copy,
+           ahr.fulfillment_staff,
+           ahr.fulfillment_lib,
+           ahr.request_lib,
+           ahr.selection_ou,
+           ahr.selection_depth,
+           ahr.pickup_lib,
+           ahr.hold_type,
+           ahr.holdable_formats,
+           CASE
+           WHEN ahr.phone_notify IS NULL THEN FALSE
+           WHEN ahr.phone_notify = '' THEN FALSE
+           ELSE TRUE
+           END AS phone_notify,
+           ahr.email_notify,
+           CASE
+           WHEN ahr.sms_notify IS NULL THEN FALSE
+           WHEN ahr.sms_notify = '' THEN FALSE
+           ELSE TRUE
+           END AS sms_notify,
+           ahr.frozen,
+           ahr.thaw_date,
+           ahr.shelf_time,
+           ahr.cut_in_line,
+           ahr.mint_condition,
+           ahr.shelf_expire_time,
+           ahr.current_shelf_lib,
+           ahr.behind_desk
+    FROM action.hold_request ahr
+         JOIN actor.usr p ON (ahr.usr = p.id)
+         LEFT JOIN actor.usr_address a ON (p.mailing_address = a.id)
+         LEFT JOIN actor.usr_address b ON (p.billing_address = b.id)
+    UNION ALL
+    SELECT 
+           usr_post_code,
+           usr_home_ou,
+           usr_profile,
+           usr_birth_year,
+           staff_placed,
+           id,
+           request_time,
+           capture_time,
+           fulfillment_time,
+           checkin_time,
+           return_time,
+           prev_check_time,
+           expire_time,
+           cancel_time,
+           cancel_cause,
+           cancel_note,
+           target,
+           current_copy,
+           fulfillment_staff,
+           fulfillment_lib,
+           request_lib,
+           selection_ou,
+           selection_depth,
+           pickup_lib,
+           hold_type,
+           holdable_formats,
+           phone_notify,
+           email_notify,
+           sms_notify,
+           frozen,
+           thaw_date,
+           shelf_time,
+           cut_in_line,
+           mint_condition,
+           shelf_expire_time,
+           current_shelf_lib,
+           behind_desk
+    FROM action.aged_hold_request;
+
+
+
+CREATE OR REPLACE FUNCTION action.age_hold_on_delete () RETURNS TRIGGER AS $$
+DECLARE
+BEGIN
+    -- Archive a copy of the old row to action.aged_hold_request
+
+    INSERT INTO action.aged_hold_request
+           (usr_post_code,
+            usr_home_ou,
+            usr_profile,
+            usr_birth_year,
+            staff_placed,
+            id,
+            request_time,
+            capture_time,
+            fulfillment_time,
+            checkin_time,
+            return_time,
+            prev_check_time,
+            expire_time,
+            cancel_time,
+            cancel_cause,
+            cancel_note,
+            target,
+            current_copy,
+            fulfillment_staff,
+            fulfillment_lib,
+            request_lib,
+            selection_ou,
+            selection_depth,
+            pickup_lib,
+            hold_type,
+            holdable_formats,
+            phone_notify,
+            email_notify,
+            sms_notify,
+            frozen,
+            thaw_date,
+            shelf_time,
+            cut_in_line,
+            mint_condition,
+            shelf_expire_time,
+            current_shelf_lib,
+            behind_desk)
+      SELECT 
+           usr_post_code,
+           usr_home_ou,
+           usr_profile,
+           usr_birth_year,
+           staff_placed,
+           id,
+           request_time,
+           capture_time,
+           fulfillment_time,
+           checkin_time,
+           return_time,
+           prev_check_time,
+           expire_time,
+           cancel_time,
+           cancel_cause,
+           cancel_note,
+           target,
+           current_copy,
+           fulfillment_staff,
+           fulfillment_lib,
+           request_lib,
+           selection_ou,
+           selection_depth,
+           pickup_lib,
+           hold_type,
+           holdable_formats,
+           phone_notify,
+           email_notify,
+           sms_notify,
+           frozen,
+           thaw_date,
+           shelf_time,
+           cut_in_line,
+           mint_condition,
+           shelf_expire_time,
+           current_shelf_lib,
+           behind_desk
+        FROM action.all_hold_request WHERE id = OLD.id;
+
+    RETURN OLD;
+END;
+$$ LANGUAGE 'plpgsql';
+
+
+COMMIT;
index 2737f47..027d6fc 100644 (file)
@@ -1,7 +1,7 @@
 <html><head><script></script></head><body onload="var x = document.getElementById('version'); var version ='/xul/server/'.split(/\//)[2]; if (version == 'server') { version = 'versionless debug build'; } x.appendChild(document.createTextNode(version));">
 <h1 style="text-decoration: underline">Evergreen</h1>
 <p>Target Server ID: <span id="version"></span></p>
-<p>$HeadURL$</p>
+<p>http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_2_5_3</p>
 <h2>What is Evergreen?</h2>
 <blockquote>
 <p>
index 0613a13..0f858be 100644 (file)
@@ -11,7 +11,7 @@ pref("toolkit.singletonWindowType", "eg_main");
 pref("open-ils.enable_join_tabs", true);
 
 // We'll use this one to help brand some build information into the client, and rely on subversion keywords
-pref("open-ils.repository.headURL","$HeadURL$");
+pref("open-ils.repository.headURL","http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_2_5_3");
 pref("open-ils.repository.author","$Author$");
 pref("open-ils.repository.revision","$Revision$");
 pref("open-ils.repository.date","$Date$");
index a954357..5ba81df 100644 (file)
@@ -3,7 +3,7 @@
 ; HM NIS Edit Wizard helper defines
 ; Old versions of makensis don't like this, moved to Makefile
 ;!define /file PRODUCT_VERSION "client/VERSION"
-!define PRODUCT_TAG "Master"
+!define PRODUCT_TAG "2.5"
 !define PRODUCT_INSTALL_TAG "${PRODUCT_TAG}"
 !define UI_IMAGESET "beta"
 ;!define UI_IMAGESET "release"
diff --git a/README b/README
deleted file mode 120000 (symlink)
index b57451acb41c034e7227f89004b1c6bd4babbf04..0000000000000000000000000000000000000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-docs/installation/server_installation.txt
\ No newline at end of file
diff --git a/README b/README
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..8c67fb79952379f1413afc7e85156e001e84a06e
--- /dev/null
+++ b/README
@@ -0,0 +1,581 @@
+Installing the Evergreen server
+===============================
+:toc:
+:numbered:
+
+Preamble: referenced user accounts
+----------------------------------
+
+In subsequent sections, we will refer to a number of different accounts, as
+follows:
+
+  * Linux user accounts:
+    ** The *user* Linux account is the account that you use to log onto the
+       Linux system as a regular user.
+    ** The *root* Linux account is an account that has system administrator
+       privileges. On Debian and Fedora you can switch to this account from
+       your *user* account by issuing the `su -` command and entering the
+       password for the *root* account when prompted. On Ubuntu you can switch
+       to this account from your *user* account using the `sudo su -` command
+       and entering the password for your *user* account when prompted.
+    ** The *opensrf* Linux account is an account that you create when installing
+       OpenSRF. You can switch to this account from the *root* account by
+       issuing the `su - opensrf` command.
+    ** The *postgres* Linux account is created automatically when you install
+       the PostgreSQL database server. You can switch to this account from the
+       *root* account by issuing the `su - postgres` command.
+  * PostgreSQL user accounts:
+    ** The *evergreen* PostgreSQL account is a superuser account that you will
+       create to connect to the PostgreSQL database server.
+  * Evergreen administrator account:
+    ** The *egadmin* Evergreen account is an administrator account for
+       Evergreen that you will use to test connectivity and configure your
+       Evergreen instance.
+
+Preamble: developer instructions
+--------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/downloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, must install some extra packages
+and perform one step before they can proceed with the `./configure` step.
+
+As the *root* Linux account, install the following packages:
+
+  * autoconf
+  * automake
+  * libtool
+
+As the *user* Linux account, issue the following command in the Evergreen
+source directory to generate the configure script and Makefiles:
+
+[source, bash]
+------------------------------------------------------------------------------
+autoreconf -i
+------------------------------------------------------------------------------
+
+After running `make install`, developers also need to install the Dojo Toolkit
+set of JavaScript libraries. The appropriate version of Dojo is included
+in Evergreen release tarballs. Developers should install the Dojo 1.3.3
+version of Dojo by issuing the following commands as the *opensrf* Linux
+account:
+
+[source, bash]
+------------------------------------------------------------------------------
+wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz
+tar -C /openils/var/web/js -xzf dojo-release-1.3.3.tar.gz
+cp -r /openils/var/web/js/dojo-release-1.3.3/* /openils/var/web/js/dojo/.
+------------------------------------------------------------------------------
+
+Installing prerequisites
+------------------------
+
+Evergreen has a number of prerequisite packages that must be installed
+before you can successfully configure, compile, and install Evergreen.
+
+1. Begin by installing the most recent version of OpenSRF (2.2.1 or later).
+   You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/
+2. On many distributions, it is necessary to install PostgreSQL 9 from external
+   repositories.
++
+  * On Debian Squeeze, open `/etc/apt/sources.list` in a text editor as the
+    *root* Linux account and add the following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+deb http://backports.debian.org/debian-backports squeeze-backports main contrib
+------------------------------------------------------------------------------
++
+  * On Ubuntu Lucid, you can use a PPA (personal package archive), which are 
+    package sources hosted on Launchpad. The one most commonly used by Evergreen
+    Community members is maintained by Martin Pitt, who also maintains the
+    official PostgreSQL packages for Ubuntu. As the *root* Linux account, issue
+    the following commands to add the PPA source:
++
+[source, bash]
+------------------------------------------------------------------------------
+apt-get install python-software-properties
+add-apt-repository ppa:pitti/postgresql
+------------------------------------------------------------------------------
++
+  * Ubuntu Precise comes with PostgreSQL 9, so no additional steps are required.
++
+  * Fedora comes with PostgreSQL 9, so no additional steps are required.
++
+3. On Debian and Ubuntu, run `aptitude update` as the *root* Linux account to
+   retrieve the new packages from the backports repository.
+4. Issue the following commands as the *root* Linux account to install
+   prerequisites using the `Makefile.install` prerequisite installer,
+   substituting `debian-squeeze`, `fedora`, `ubuntu-lucid`, or
+   `ubuntu-precise` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+5. Add the libdbi-libdbd libraries to the system dynamic library path by
+   issuing the following commands as the *root* Linux account:
++
+[NOTE]
+You should skip this step if installing on Ubuntu Precise. The ubuntu-precise
+target uses libdbd-pgsql from packages.
++
+.Debian / Ubuntu Lucid
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/local/lib/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
++
+.Fedora
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/lib64/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
+
+Configuration and compilation instructions
+------------------------------------------
+
+For the time being, we are still installing everything in the `/openils/`
+directory. From the Evergreen source directory, issue the following commands as
+the *user* Linux account to configure and build Evergreen:
+
+[source, bash]
+------------------------------------------------------------------------------
+PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
+make
+------------------------------------------------------------------------------
+
+These instructions assume that you have also installed OpenSRF under `/openils/`.
+If not, please adjust PATH as needed so that the Evergreen `configure` script
+can find `osrf_config`.
+
+Installation instructions
+-------------------------
+
+1. Once you have configured and compiled Evergreen, issue the following
+   command as the *root* Linux account to install Evergreen, build the server
+   portion of the staff client, and copy example configuration files to
+   `/openils/conf`.
+   Change the value of the `STAFF_CLIENT_STAMP_ID` variable to match the version
+   of the staff client that you will use to connect to the Evergreen server.
++
+[source, bash]
+------------------------------------------------------------------------------
+make STAFF_CLIENT_STAMP_ID=rel_2_5_3 install
+------------------------------------------------------------------------------
++
+2. The server portion of the staff client expects `http://hostname/xul/server`
+   to resolve. Issue the following commands as the *root* Linux account to
+   create a symbolic link pointing to the `server` subdirectory of the server
+   portion of the staff client that we just built using the staff client ID
+   'rel_name':
++
+[source, bash]
+------------------------------------------------------------------------------
+cd /openils/var/web/xul
+ln -sf rel_name/server server
+------------------------------------------------------------------------------
+
+Change ownership of the Evergreen files
+---------------------------------------
+
+All files in the `/openils/` directory and subdirectories must be owned by the
+`opensrf` user. Issue the following command as the *root* Linux account to
+change the ownership on the files:
+
+[source, bash]
+------------------------------------------------------------------------------
+chown -R opensrf:opensrf /openils
+------------------------------------------------------------------------------
+
+Configure the Apache Web server
+-------------------------------
+
+1. Use the example configuration files in `Open-ILS/examples/apache/` (for
+Apache versions below 2.4) or `Open-ILS/examples/apache_24/` (for Apache
+versions 2.4 or greater) to configure your Web server for the Evergreen
+catalog, staff client, Web services, and administration interfaces. Issue the
+following commands as the *root* Linux account:
++
+.Debian and Ubuntu
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache/eg.conf       /etc/apache2/sites-available/
+cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/
+cp Open-ILS/examples/apache/eg_startup    /etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------
++
+.Fedora
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/httpd/conf.d/
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/httpd/eg_vhost.conf
+cp Open-ILS/examples/apache/eg_startup          /etc/httpd/
+# Now set up SSL
+mkdir /etc/httpd/ssl
+cd /etc/httpd/ssl
+------------------------------------------------------------------------------
++
+2. The `openssl` command cuts a new SSL key for your Apache server. For a
+production server, you should purchase a signed SSL certificate, but you can
+just use a self-signed certificate and accept the warnings in the staff client
+and browser during testing and development. Create an SSL key for the Apache
+server by issuing the following command as the *root* Linux account:
++
+[source,bash]
+------------------------------------------------------------------------------
+openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+------------------------------------------------------------------------------
++
+3. As the *root* Linux account, edit the `eg.conf` file that you copied into
+place.
+  a. To enable access to the offline upload / execute interface from any
+     workstation on any network, make the following change (and note that
+     you *must* secure this for a production instance):
+     * (Apache 2.2): Replace `Allow from 10.0.0.0/8` with `Allow from all`
+     * (Apache 2.4): Replace `Require host 10.0.0.0/8` with `Require all granted`
+  b. (Fedora): Change references from the non-existent `/etc/apache2/` directory
+     to `/etc/httpd/`.
+4. Change the user for the Apache server.
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/envvars`.  Change `export APACHE_RUN_USER=www-data` to 
+    `export APACHE_RUN_USER=opensrf`.
+  * (Fedora): As the *root* Linux account , edit `/etc/httpd/conf/httpd.conf`.
+    Change `User apache` to `User opensrf`.
+5. Configure Apache with performance settings appropriate for Evergreen:
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/apache2.conf`:
+  * (Fedora): As the *root* Linux account, edit `/etc/httpd/conf/httpd.conf`:
+    a. Change `KeepAliveTimeout` to `1`. Higher values reduce the chance of
+       a request timing out unexpectedly, but increase the risk of using up
+       all available Apache child processes.
+    b. 'Optional': Change `MaxKeepAliveRequests` to `100`
+    c. Update the prefork configuration section to suit your environment. The
+       following settings apply to a busy system:
++
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers           20
+   MinSpareServers         5
+   MaxSpareServers        15
+   MaxClients            150
+   MaxRequestsPerChild 10000
+</IfModule>
+------------------------------------------------------------------------------
++
+6. (Fedora): As the *root* Linux account, edit the `/etc/httpd/eg_vhost.conf`
+   file to change references from the non-existent `/etc/apache2/` directory
+   to `/etc/httpd/`.
+7. (Debian and Ubuntu): As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
+
+Configure OpenSRF for the Evergreen application
+-----------------------------------------------
+There are a number of example OpenSRF configuration files in `/openils/conf/`
+that you can use as a template for your Evergreen installation. Issue the
+following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
+cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
+------------------------------------------------------------------------------
+
+When you installed OpenSRF, you created four Jabber users on two
+separate domains and edited the `opensrf_core.xml` file accordingly. Please
+refer back to the OpenSRF README and, as the *opensrf* Linux account, edit the
+Evergreen version of the `opensrf_core.xml` file using the same Jabber users
+and domains as you used while installing and testing OpenSRF.
+
+[NOTE]
+The `-b` flag tells the `cp` command to create a backup version of the
+destination file. The backup version of the destination file has a tilde (`~`)
+appended to the file name, so if you have forgotten the Jabber users and
+domains, you can retrieve the settings from the backup version of the files.
+
+`eg_db_config`, described in the following section, sets the database
+connection information in `opensrf.xml` for you.
+
+Creating the Evergreen database
+-------------------------------
+
+Setting up the PostgreSQL server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For production use, most libraries install the PostgreSQL database server on a
+dedicated machine. Therefore, by default, the `Makefile.install` prerequisite
+installer does *not* install the PostgreSQL 9 database server that is required
+by every Evergreen system. You can install the packages required by Debian or
+Ubuntu Lucid on the machine of your choice using the following commands as the
+*root* Linux account:
+
+.(Debian / Ubuntu / Fedora) Installing PostgreSQL server packages
+
+Each OS build target provides the postgres server installation packages
+required for each operating system.  To install Postgres server packages, 
+use the make target 'postgres-server-<OSTYPE>'.  Choose the most appropriate 
+command below based on your operating system.
+
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-wheezy
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-squeeze
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-lucid
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-precise
+make -f Open-ILS/src/extras/Makefile.install postgres-server-fedora
+------------------------------------------------------------------------------
+
+.(Fedora) Postgres initialization
+
+Installing Postgres on Fedora also requires you to initialize the PostgreSQL
+cluster and start the service. Issue the following commands as the *root* user:
+
+[source, bash]
+------------------------------------------------------------------------------
+postgresql-setup initdb
+systemctl start postgresql
+------------------------------------------------------------------------------
+
+For a standalone PostgreSQL server, install the following Perl modules as the
+*root* Linux account:
+
+.(Debian / Ubuntu) Installing additional Perl modules on a standalone PostgreSQL 9 server
+[source, bash]
+------------------------------------------------------------------------------
+aptitude install gcc libxml-libxml-perl libxml-libxslt-perl
+cpan Business::ISBN
+cpan JSON::XS
+cpan Library::CallNumber::LC
+cpan MARC::Record
+cpan MARC::File::XML
+cpan UUID::Tiny
+cpan Rose::URI
+------------------------------------------------------------------------------
+
+.(Fedora) Installing additional Perl modules on a standalone PostgreSQL 9 server
+[source, bash]
+------------------------------------------------------------------------------
+yum install gcc perl-XML-LibXML perl-XML-LibXSLT perl-Business-ISBN
+yum install perl-Library-CallNumber-LC perl-MARC-Record perl-MARC-Charset
+yum install perl-MARC-File-XML perl-UUID-Tiny
+------------------------------------------------------------------------------
+
+You need to create a PostgreSQL superuser to create and access the database.
+Issue the following command as the *postgres* Linux account to create a new
+PostgreSQL superuser named `evergreen`. When prompted, enter the new user's
+password:
+
+[source, bash]
+------------------------------------------------------------------------------
+createuser -s -P evergreen
+------------------------------------------------------------------------------
+
+.Enabling connections to the PostgreSQL database
+
+Your PostgreSQL database may be configured by default to prevent connections,
+for example, it might reject attempts to connect via TCP/IP or from other
+servers. To enable TCP/IP connections from localhost, check your `pg_hba.conf`
+file, found in the `/etc/postgresql/` directory on Debian and Ubuntu, and in
+the `/var/lib/pgsql/data/` directory on Fedora. A simple way to enable TCP/IP
+connections from localhost to all databases with password authentication, which
+would be suitable for a test install of Evergreen on a single server, is to
+ensure the file contains the following entries _before_ any "host ... ident"
+entries:
+
+------------------------------------------------------------------------------
+host    all             all             ::1/128                 md5
+host    all             all             127.0.0.1/32            md5
+------------------------------------------------------------------------------
+
+When you change the `pg_hba.conf` file, you will need to reload PostgreSQL to
+make the changes take effect.  For more information on configuring connectivity
+to PostgreSQL, see
+http://www.postgresql.org/docs/devel/static/auth-pg-hba-conf.html
+
+Creating the Evergreen database and schema
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once you have created the *evergreen* PostgreSQL account, you also need to
+create the database and schema, and configure your configuration files to point
+at the database server. Issue the following command as the *root* Linux account
+from inside the Evergreen source directory, replacing <user>, <password>,
+<hostname>, <port>, and <dbname> with the appropriate values for your
+PostgreSQL database (where <user> and <password> are for the *evergreen*
+PostgreSQL account you just created), and replace <admin-user> and <admin-pass>
+with the values you want for the *egadmin* Evergreen administrator account:
+
+[source, bash]
+------------------------------------------------------------------------------
+perl Open-ILS/src/support-scripts/eg_db_config --update-config \
+       --service all --create-database --create-schema --create-offline \
+       --user <user> --password <password> --hostname <hostname> --port <port> \
+       --database <dbname> --admin-user <admin-user> --admin-pass <admin-pass>
+------------------------------------------------------------------------------
+
+This creates the database and schema and configures all of the services in
+your `/openils/conf/opensrf.xml` configuration file to point to that database.
+It also creates the configuration files required by the Evergreen `cgi-bin`
+administration scripts, and sets the user name and password for the *egadmin*
+Evergreen administrator account to your requested values.
+
+You can get a complete set of options for `eg_db_config.pl` by passing the
+`--help` parameter.
+
+Loading sample data
+~~~~~~~~~~~~~~~~~~~
+If you add the `--load-all-sample` parameter to the `eg_db_config` command,
+a set of authority and bibliographic records, call numbers, copies, staff
+and regular users, and transactions will be loaded into your target
+database. This sample dataset is commonly referred to as the _concerto_
+sample data, and can be useful for testing out Evergreen functionality and
+for creating problem reports that developers can easily recreate with their
+own copy of the _concerto_ sample data.
+
+Creating the database on a remote server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In a production instance of Evergreen, your PostgreSQL server should be
+installed on a dedicated server.
+
+PostgreSQL 9.1 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.1 or later, simply use the `--create-database` flag on `eg_db_config`.
+
+Starting Evergreen
+------------------
+1. As the *root* Linux account, start the `memcached` and `ejabberd` services
+(if they aren't already running):
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/ejabberd start
+/etc/init.d/memcached start
+------------------------------------------------------------------------------
++
+2. As the *opensrf* Linux account, start Evergreen. The `-l` flag in the
+following command is only necessary if you want to force Evergreen to treat the
+hostname as `localhost`; if you configured `opensrf.xml` using the real
+hostname of your machine as returned by `perl -ENet::Domain 'print
+Net::Domain::hostfqdn() . "\n";'`, you should not use the `-l` flag.
++
+[source, bash]
+------------------------------------------------------------------------------
+osrf_ctl.sh -l -a start_all
+------------------------------------------------------------------------------
++
+  ** If you receive the error message `bash: osrf_ctl.sh: command not found`,
+     then your environment variable `PATH` does not include the `/openils/bin`
+     directory; this should have been set in the *opensrf* Linux account's
+     `.bashrc` configuration file. To manually set the `PATH` variable, edit the
+     configuration file `~/.bashrc` as the *opensrf* Linux account and add the
+     following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+export PATH=$PATH:/openils/bin
+------------------------------------------------------------------------------
++
+3. As the *opensrf* Linux account, generate the Web files needed by the staff
+   client and catalogue and update the organization unit proximity (you need to do
+   this the first time you start Evergreen, and after that each time you change
+   the library hierarchy in `config.cgi`):
++
+[source, bash]
+------------------------------------------------------------------------------
+autogen.sh -u
+------------------------------------------------------------------------------
++
+4. As the *root* Linux account, restart the Apache Web server:
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/apache2 restart
+------------------------------------------------------------------------------
++
+If the Apache Web server was running when you started the OpenSRF services, you
+might not be able to successfully log in to the OPAC or staff client until the
+Apache Web server is restarted.
+
+Testing connections to Evergreen
+--------------------------------
+
+Once you have installed and started Evergreen, test your connection to
+Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following
+commands to start `srfsh` and try to log onto the Evergreen server using the
+*egadmin* Evergreen administrator user name and password that you set using the
+`eg_db_config` command:
+
+[source, bash]
+------------------------------------------------------------------------------
+/openils/bin/srfsh
+srfsh% login <admin-user> <admin-pass>
+------------------------------------------------------------------------------
+
+You should see a result like:
+
+    Received Data: "250bf1518c7527a03249858687714376"
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 0.045286
+    ------------------------------------
+
+    Received Data: {
+       "ilsevent":0,
+       "textcode":"SUCCESS",
+       "desc":" ",
+       "pid":21616,
+       "stacktrace":"oils_auth.c:304",
+       "payload":{
+          "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
+          "authtime":420
+       }
+
+    }
+
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 1.336568
+    ------------------------------------
+
+If this does not work, it's time to do some troubleshooting.
+
+  * As the *opensrf* Linux account, run the `settings-tester.pl` script to see
+    if it finds any system configuration problems. The script is found at
+    `Open-ILS/src/support-scripts/settings-tester.pl` in the Evergreen source
+    tree.
+  * Follow the steps in the http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors[troubleshooting guide].
+  * If you have faithfully followed the entire set of installation steps
+    listed here, you are probably extremely close to a working system.
+    Gather your configuration files and log files and contact the
+    http://evergreen-ils.org/communicate/mailing-lists/[Evergreen development 
+mailing list] for assistance before making any drastic changes to your system
+    configuration.
+
+Getting help
+------------
+
+Need help installing or using Evergreen? Join the mailing lists at
+http://evergreen-ils.org/communicate/mailing-lists/ or contact us on the Freenode
+IRC network on the #evergreen channel.
+
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
index 99370e4..cc2cdb5 100644 (file)
@@ -20,8 +20,8 @@
 
 export PATH=${PATH}:/usr/sbin
 AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev@list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 2.5.3, open-ils-dev@list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [2.5.3])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])