Bumping version numbers, adding Upgrade Script and Changelog
authorDan Wells <dbw2@calvin.edu>
Tue, 20 Nov 2018 20:35:26 +0000 (15:35 -0500)
committerDan Wells <dbw2@calvin.edu>
Tue, 20 Nov 2018 20:35:26 +0000 (15:35 -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/3.2.1-3.2.2-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..cb021e6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,971 @@
-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 c48fd50647b9ce44757e23c47bc6fca6c5cc7bce
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 20 15:29:13 2018 -0500
+
+    Update upgrade docs for 3.2.2 release
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+16     16      docs/installation/server_upgrade.adoc
+
+commit 99bad0f721f2d09fad4ff22960a5987ec360d20c
+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 f364ec12cc94cd04f86de4df0dfef5ddb19c3c3b
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 20 15:23:07 2018 -0500
+
+    Translation updates - po files
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+4      4       build/i18n/po/circ/cs-CZ.po
+4      4       build/i18n/po/selfcheck.js/cs-CZ.po
+
+commit 27f2cb2e06d0b6d14d47727c8bac3c418b7fec7d
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 20 15:17:31 2018 -0500
+
+    Translation updates - newpot
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+14     14      build/i18n/po/tpac/tpac.pot
+82     82      build/i18n/po/webstaff/webstaff.pot
+
+commit 017679d0279fd113120c47d2a083b7554f878bed
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 20 13:50:27 2018 -0500
+
+    Release notes entry for LP#1804038
+    
+    Also, add a missing contributor.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+2      0       docs/RELEASE_NOTES_3_2.adoc
+
+commit 73667df4a369e91b523a0bce9064b6664a740e47
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 20 12:33:49 2018 -0500
+
+    LP#1804038 Fix-ups for older 'clense' functions
+    
+    Way back when, we switched from a misspelled 'clense_ISO8601' to a
+    corrected 'cleanse_ISO8601' in OpenSRF.  This function has again moved,
+    and is now part of OpenILS::Utils::DateTime, and is named
+    'clean_ISO8601'.  This was done as part of LP bug #1552778.
+    
+    However, a few stragglers of the misspelling remained, so these were
+    missed when the big changeover occurred.  This hopefully catches them
+    all!
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Jason Boyer <jboyer@library.in.gov>
+
+2      2       Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Booking.pm
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm
+
+commit 25debc65eb9b52129c72abecf1ea5da23421ebb3
+Author: kilsdonka <43423795+kilsdonka@users.noreply.github.com>
+Date:   Tue Nov 20 09:50:54 2018 -0800
+
+    Docs: Multilingual search documentation
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+70     0       docs/admin/multilingual_search.adoc
+-      -       docs/media/multilingual_search1.png
+-      -       docs/media/multilingual_search2.PNG
+-      -       docs/media/multilingual_search3.PNG
+2      0       docs/root.adoc
+6      0       docs/root_staff_client_admin.adoc
+ create mode 100644 docs/admin/multilingual_search.adoc
+ create mode 100644 docs/media/multilingual_search1.png
+ create mode 100644 docs/media/multilingual_search2.PNG
+ create mode 100644 docs/media/multilingual_search3.PNG
+
+commit e82b6edf0d640e36804d5b25f090dff3f1050bd5
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 20 12:57:47 2018 -0500
+
+    Release notes entry for LP#1793154
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+2      0       docs/RELEASE_NOTES_3_2.adoc
+
+commit 8be497fa12f4c9da489b83039d522e540f66af4c
+Author: Jason Boyer <jboyer@library.in.gov>
+Date:   Tue Nov 20 11:54:50 2018 -0500
+
+    LP1793154: Cancel Holds from OPAC Record
+    
+    The name of the grid handler was misspelled
+    in the holds grid for records in the opac.
+    Swapping the location of the 'wide' part of
+    the function name will allow it to match up
+    with the functions available in the holds
+    grid module.
+    
+    Signed-off-by: Jason Boyer <jboyer@library.in.gov>
+    Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+1      1       Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
+
+commit 964295edc98019e688ef8033f4ed85a75b848cb1
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Tue Nov 20 08:50:35 2018 -0800
+
+    Docs: documenting multiple emails in patron editor (LP1755625)
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+24     0       docs/admin/patron_registration.adoc
+12     0       docs/circulation/circulation_patron_records_web_client.adoc
+2      0       docs/root_staff_client_admin.adoc
+ create mode 100644 docs/admin/patron_registration.adoc
+
+commit 71a23d65f1f8ef6ee92c9f168751fbbcf6edc402
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Tue Nov 20 08:27:35 2018 -0800
+
+    Docs: release notes for 3.2.2
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+78     0       docs/RELEASE_NOTES_3_2.adoc
+
+commit 8ab48e237db39e5b30f8714155c289baf040b08b
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Tue Nov 20 08:18:34 2018 -0800
+
+    Docs: adding release notes for 3.1.8
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+74     0       docs/RELEASE_NOTES_3_1.adoc
+
+commit 095b59e2f3f9c5596c3156130267ac42794805ba
+Author: Ben Shum <ben@evergreener.net>
+Date:   Tue Nov 20 09:18:05 2018 -0500
+
+    LP#1643709: Stamping upgrade scripts
+    
+    Include placeholder 1137 for 3.1 version of the SQL function changed
+    vs. 1138 which contains the one for 3.2 and master and beyond.
+    
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+1      1       Open-ILS/src/sql/Pg/002.schema.config.sql
+9      0       Open-ILS/src/sql/Pg/upgrade/1137.function.global.purge-usr-on-merge-3.1.sql
+361    0       Open-ILS/src/sql/Pg/upgrade/1138.function.global.purge-usr-on-merge.sql
+0      361     Open-ILS/src/sql/Pg/upgrade/xxxx.function.global.purge-usr-on-merge.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1137.function.global.purge-usr-on-merge-3.1.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1138.function.global.purge-usr-on-merge.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.function.global.purge-usr-on-merge.sql
+
+commit f4183e66b38ec08e325d59e0b9162dfd6cbb87d1
+Author: Rogan Hamby <rogan.hamby@gmail.com>
+Date:   Fri Sep 14 09:25:57 2018 -0400
+
+    LP#1643709 User merge + purge pgtap test
+    
+    Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+25     0       Open-ILS/src/sql/Pg/t/lp1643709_purge_usrs_on_merge.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp1643709_purge_usrs_on_merge.pg
+
+commit 3edfc1d7b441145e020538b0e513da903111ce53
+Author: Rogan Hamby <rogan.hamby@gmail.com>
+Date:   Fri Sep 14 08:05:12 2018 -0400
+
+    LP#1643709 purge users on merge instead of flag deleted
+    
+    Purge merged user accounts.
+    
+    Update the upgraded version of the usr_merge() db function to match
+    recnet changes in master.
+    
+    Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+1      1       Open-ILS/src/sql/Pg/999.functions.global.sql
+361    0       Open-ILS/src/sql/Pg/upgrade/xxxx.function.global.purge-usr-on-merge.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/xxxx.function.global.purge-usr-on-merge.sql
+
+commit ebe7726d9033e0c462baa443ab5977c48024a719
+Author: Jason Boyer <JBoyer@library.in.gov>
+Date:   Fri Nov 2 12:33:10 2018 -0400
+
+    LP1801156: Add missing assets to 3.2 Offline mode
+    
+    t_org_select was missing from the UpUp asset list,
+    causing offline mode to be non-functional when unable
+    to connect to the server.
+    
+    Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+2      0       Open-ILS/src/templates/staff/base_js.tt2
+
+commit 7a0e6b686091e86413e69a6ebfff2f61b68e7f2f
+Author: Garry Collum <gcollum@gmail.com>
+Date:   Sat Jun 16 14:13:22 2018 -0400
+
+    LP#1761242 Z39.50 Marc View Usability with Mobile Repsonsiveness
+    
+    This patch changes the size of the image in the Z39.50 Marc View from large to
+    medium.  It also incorporates bootstrap's media classes to present the Marc
+    record and the cover image side by side.  If there is no image the marc record
+    display floats to the left of the modal. From a suggestion by Jane Sandbert, it
+    also hides the book cover image on small devices.
+    
+    To test.
+    1. Perform a search in z39.50.  An LOC title search for "Cat in the Hat"
+       returms results of titles with and without images.
+    2. View some of the titles in Marc View, noting the large image.
+    3. Apply the patch.
+    4. Perform the same search and view the results in Marc View.
+    
+    Signed-off-by: Garry Collum <gcollum@gmail.com>
+    Signed-off-by: Janet Schrader <jschrader@cwmars.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+8      2       Open-ILS/src/templates/staff/cat/z3950/t_marc_html.tt2
+
+commit 1dbf4109ffffe66aba07648fabf103432b932b40
+Author: Jason Stephenson <jason@sigio.com>
+Date:   Mon Sep 17 10:08:34 2018 -0400
+
+    Lp 1753813: Wrap all oils_persist:source_definitions in CDATA blocks.
+    
+    For safety's sake, we add CDATA sections in all fm_ILD.xml
+    oils_persist:source_definition elements as show in the example at the
+    top of the IDL.
+    
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+39     39      Open-ILS/examples/fm_IDL.xml
+
+commit 46bd9e31258ea34a3c3e843ff9febf47a000fea5
+Author: Ben Shum <ben@evergreener.net>
+Date:   Sun Nov 18 22:06:21 2018 -0500
+
+    LP#1764542: Fixing upgrade script numbering
+    
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+1      1       Open-ILS/src/sql/Pg/upgrade/1136.schema.lp1764542-mods33-update.sql
+
+commit e0c41ce17e4f51a2139ea4aad3e626f8b0b15a98
+Author: Ben Shum <ben@evergreener.net>
+Date:   Sun Nov 18 21:58:38 2018 -0500
+
+    LP#1764542: Stamping upgrade script
+    
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+1      1       Open-ILS/src/sql/Pg/002.schema.config.sql
+13     0       Open-ILS/src/sql/Pg/upgrade/1136.schema.lp1764542-mods33-update.sql
+0      13      Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1764542-mods33-update.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1136.schema.lp1764542-mods33-update.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1764542-mods33-update.sql
+
+commit 14b9dad9ce6f81b5d4088a315c64c67c809435f7
+Author: Chris Sharp <csharp@georgialibraries.org>
+Date:   Mon Jun 4 13:10:31 2018 -0400
+
+    LP#1764542 - Update older sites to MODS 3.3
+    
+    MODS 3.3 support was introduced in March 2009, but this
+    change was never included in an upgrade script.  Older
+    sites on 3.1+ will need to apply this update to avoid scary
+    segmentation faults, and it should be harmless for newer
+    sites and desirable for those on 3.0 or older.
+    
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+13     0       Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1764542-mods33-update.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.lp1764542-mods33-update.sql
+
+commit 996c5e85555e2eb00ea80b44e741a5c4c484b877
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Thu Sep 20 11:00:22 2018 -0400
+
+    LP#1792621: Fix think-o in Hold Shelf Delay YAOUS test
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 6056f30ed1b7db00f7559bcc6ab3c83c2312fcdf
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Mon Sep 17 10:19:34 2018 -0400
+
+    LP#1792621: Ignore deleted items on hold shelf
+    
+    The hold shelf rewrite brought back an old behavioral bug where items deleted
+    while on the hold shelf continued to show on the hold shelf list.  The most
+    recent behavior was to ignore those items, which this commit does.  It also
+    addresses an adjacent issue where holds may show with "Hold Shelf Delay"
+    instead of "Ready For Pickup" in some cases.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+2      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+1      0       Open-ILS/web/js/ui/default/staff/circ/holds/app.js
+
+commit fc0264346bacae7ccafee34c0155c13e53d55229
+Author: Jason Boyer <jboyer@library.in.gov>
+Date:   Thu Nov 15 11:43:30 2018 -0500
+
+    LP1755625: Multiple emails in patron editor
+    
+    Even though the HTML5 "email" input type allows multiple
+    addresses to be separated by commas there is nothing that
+    can be done to signal to Angular.js that this is ok; it
+    will only ever accept a single address. This patch forces
+    the type of the input tag to plain text so Angular will
+    rely on any supplied regex to verify the entry.
+    
+    The ui.patron.edit.au.email.regex (Regex for email field on patron
+    registration) library setting can be used to control whether
+    one or multiple email addresses will be permitted on the
+    patron registration form.
+    
+    To allow multiple addresses, that setting can be:
+    
+    ^(?:(?:\b[^@,\s]+@[^@,\s]+\.[^@.,\s]+\b)(?:,\s?(?!$)|$))*$
+    
+    To allow only a single address, use:
+    
+    ^(?:\b[^@,\s]+@[^@,\s]+\.[^@.,\s]+\b)$
+    
+    To test
+    -------
+    [1] In the web staff client, try to register a new patron, entering
+        multiple email addresseses in the email field separated by
+        commas.
+    [2] Note that the email field displays as invalid and the
+        record cannot be saved.
+    [3] Apply the patch and repeat step #1, This time, the email
+        field should accept multiple addresses.
+    [4] Set the Regex for email field on patron registration library
+        setting to the multiple-email form listed above. Reload
+        the patron registration form and verify that it will
+        continue to accept multiple email addresses but will not
+        accept entry that doesn't look like an email address.
+    [5] Set the library setting to the single-address value. Reload
+        the patron registration form; this time it should accept
+        a valid email address but not multiple ones.
+    
+    Signed-off-by: Jason Boyer <jboyer@library.in.gov>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org>
+
+3      1       Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+
+commit 72ff895e86ddc16dcd5df42578d477517169fa59
+Author: Jeanette Lundgren <jlundgren@cwmars.org>
+Date:   Wed Sep 12 15:52:21 2018 -0400
+
+    Docs: LP#1578719 Update DIG Attributions page
+    
+    Signed-off-by: Jeanette Lundgren <jlundgren@cwmars.org>
+    Signed-off-by: Ben Shum <ben@evergreener.net>
+
+17     14      docs/shared/attributions.adoc
+
+commit 43c75ec072ece2d150ffb3a8a211bfc946785ad3
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Nov 6 09:42:17 2018 -0500
+
+    LP#1797007 Grid cell tooltips apply to all cells (Ang)
+    
+    Avoid excessive browser page re-flows, caused by checking cell
+    widths for rendering tooltips, by rendering tooltips for all cells
+    regardless of the size of the content.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <jboyer@library.in.gov>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+2      2       Open-ILS/src/eg2/src/app/share/grid/grid-body-cell.component.html
+2      34      Open-ILS/src/eg2/src/app/share/grid/grid-body-cell.component.ts
+
+commit c31bf958cd6db4c96811be8db6bb32b75e63c300
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Nov 5 10:52:17 2018 -0500
+
+    LP#1797007 Grid cell tooltips apply to all cells
+    
+    Avoid excessive browser page re-flows, caused by checking cell widths
+    for rendering tooltips, by rendering tooltips for all cells regardless
+    of the size of the content.
+    
+    This reverts commit 1e9c0ab388a0697a1f099970240f2da21bfb5e1f.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+1      4       Open-ILS/src/templates/staff/share/t_autogrid.tt2
+1      30      Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 34613bd46cae4b228beaafcbd44846971c9179a9
+Author: Cesar Velez <cesar.velez@equinoxinitiative.org>
+Date:   Wed Nov 7 11:09:10 2018 -0500
+
+    LP#1684202 - fix holdings grid refresh... bre_id array always be integers
+    
+    For some strange reason the volcopy bchannel event data.records
+    would be an array of string integers or a array of ints depending
+    on whether you're adding or editing holdings. This addresses that
+    weirdness.
+    
+    Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
+    
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+
+1      1       Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 262a1d35df4293be14f7ea876ab04e491c338a14
+Author: Cesar Velez <cesar.velez@equinoxinitiative.org>
+Date:   Wed Oct 17 18:06:01 2018 -0400
+
+    LP#1684202 - fix bug the prevented automatic refresh
+    
+    Turns out that Array.includes() does not do implicit type convertions
+    Typical javascript...
+    
+    Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
+    
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+
+1      1       Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit c6e420d2078ebe8b168dea4695892aefafd11976
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Fri Sep 14 11:03:30 2018 -0400
+
+    LP#1684202: Protect against missing features; Make feature more general
+    
+    I've wrapped the BroadcastChannel code in a test derived from the auth version
+    of the same concept.  Also broadcasting the full set of record IDs and the
+    pre-update call number IDs for other interfaces that might be interested. The
+    channel name is also made more generic and made to follow the precedent from
+    the auth channel name.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
+
+28     0       Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+14     1       Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit ac51b481206bbd273ead680b52837273ac1e9389
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Mon Nov 12 12:26:40 2018 -0500
+
+    Stamping upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+
+1      1       Open-ILS/src/sql/Pg/002.schema.config.sql
+220    0       Open-ILS/src/sql/Pg/upgrade/1134.function.located_uri_browse_visibility.sql
+0      220     Open-ILS/src/sql/Pg/upgrade/XXXX.function.located_uri_browse_visibility.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1134.function.located_uri_browse_visibility.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.located_uri_browse_visibility.sql
+
+commit 1a5a9c9041d5bbd0ee7fda646d26fb22173c2929
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Fri Nov 9 12:28:08 2018 -0500
+
+    LP#1773479 Show Located URIs in browse
+    
+    Located URIs depend upon bib-level visibility, as there are no copies
+    to work with.  The browse code, however, was joining in the copy
+    visibility table as if it would always have at least one row per bib,
+    but in the case of located URIs, it does not.
+    
+    Let's change it to a LEFT JOIN to allow the bib row to show up, at
+    which point the existing bib visibility check can do its job.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+
+2      2       Open-ILS/src/sql/Pg/300.schema.staged_search.sql
+220    0       Open-ILS/src/sql/Pg/upgrade/XXXX.function.located_uri_browse_visibility.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.located_uri_browse_visibility.sql
+
+commit 6c9b4832b156970a861603a64fa0ae22abaeb4be
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Wed Oct 24 14:38:01 2018 -0400
+
+    LP#1724348 Honor default tab from catalog search
+    
+    The default tab selection was not being honored from catalog searches,
+    as the search had already set $scope.record_tab, and we were honoring
+    that value in all cases.
+    
+    Instead, let's honor that value in cases where the OPAC load doesn't
+    change our current record, which should only happen if we load the
+    record directly to a non-opac tab, then go to the OPAC view.
+    
+    To test:
+    1) Set any tab other than "OPAC View" as your default view in record
+    details.
+    2) Do a catalog search.
+    3) Select a record, and notice your default view is not set.
+    4) Apply patch, do the same steps, and notice the default view is now
+    selected.
+    
+    To test regression of bug #1708951:
+    1) In Firefox, load a record directly (e.g.
+    /eg/opac/staff/cat/catalog/record/123).
+    2) Note the default view loaded.
+    3) Click "OPAC View".
+    4) Note the view does not return to your default view, but stays on
+    the OPAC.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Jason Boyer <JBoyer@library.in.gov>
+
+5      2       Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 4eac9154f3fe122e15c4fddef729efd3924672d6
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Wed Nov 7 09:27:30 2018 -0500
+
+    LP#1635737 Due date DST noncat thinko fix
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+2      2       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/NonCat.pm
+
+commit d96d5b6bcb279f60b4add125eb33eefa3417fffb
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Nov 6 16:22:43 2018 -0500
+
+    LP#1635737 Due date DST-aware thinko fix
+    
+    Minor code refactor to fix thinko and syntax issues.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+3      3       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit b5357b0283c37ce12d161186f1092d138752e4f4
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Mon Jul 31 15:55:34 2017 -0400
+
+    LP#1635737 Apply DST-aware timezone to context dates
+    
+    Do our best to enforce the rule required by OpenSRF's interval_to_seconds
+    that when a context date is in use, and you care about DST awareness, you
+    must set the timezone to a DST-aware value, e.g., 'America/New_York'. In
+    most situations, 'local' will suffice for this, as the server is typically
+    configured with a DST-aware timezone in its environment.  However, we will
+    look for an org unit setting called 'lib.timezone' and use that where we
+    can.  See LP#1705524 for info on that setting.
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    
+    Conflicts:
+       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/NonCat.pm
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+19     4       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+10     1       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/NonCat.pm
+
+commit 8520c3257a71444a9068e1c9de344c2010b2af02
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Fri Jul 21 14:28:16 2017 -0400
+
+    LP#1635737 Use new OpenSRF interval_to_seconds() context
+    
+    Use the optional context for interval_to_seconds() to account for the
+    variable length of duration components.  For example, "1 day" may be
+    shorter or longer than 24 hours during a time change event, "1 month"
+    may be shorter or longer depending on which month it is currently, etc.
+    
+    Also, remove some timestamp munging, as that happens within
+    interval_to_seconds() already.
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    
+    Conflicts:
+       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+1      5       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+1      1       Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/NonCat.pm
+
+commit 36581e75999f7fda8705e203a4e299988662fa54
+Author: Mike Rylander <mrylander@gmail.com>
+Date:   Tue Nov 6 15:27:23 2018 -0500
+
+    LP#1635737: Unit tests for DST and date math
+    
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+18     1       Open-ILS/src/perlmods/t/14-OpenILS-Utils.t
+
+commit 479361d70a31562cb045d14742c85b5440491067
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Tue Nov 6 15:13:47 2018 -0500
+
+    LP#1635737 Add optional context to interval_to_seconds
+    
+    Any given interval (e.g. "1 month") can be a different amount of
+    seconds depending on the context (i.e. "1 month" after February 1 is
+    March 1, but "1 month" after March 1 is April 1, yet March is longer
+    than February).  This affects months all the time, but also can
+    affect days, hours, and even seconds once you consider DST and "leap"
+    times.
+    
+    By giving an optional context to interval_to_seconds, you can find
+    the true number of seconds in, for example, "1 month", when starting
+    from "February 1" (the context).
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+48     17      Open-ILS/src/perlmods/lib/OpenILS/Utils/DateTime.pm
+
+commit f8473b18091b355cc9452ae7adeb5214fa997f7a
+Author: Kathy Lussier <klussier@masslnc.org>
+Date:   Wed Jul 25 11:51:06 2018 -0400
+
+    LP#1783602: Remove copy counts from mr search results page
+    
+    The copy counts on the mr search results page can be wrong if a limiter was
+    applied to the metarecord search. Rather than supply inaccurate information to
+    the user, let's remove the counts from that page until a long-term solution can
+    be developed.
+    
+    Signed-off-by: Kathy Lussier <klussier@masslnc.org>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+3      1       Open-ILS/src/templates/opac/parts/result/table.tt2
+
+commit 9080603f72e10ef1d18f895fb31cfca77d0bbc89
+Author: Kathy Lussier <klussier@masslnc.org>
+Date:   Mon Nov 5 15:50:24 2018 -0500
+
+    LP#1755543: Change placement of help popovers
+    
+    Set the placement of help tip popovers so that they automatically position
+    to a visible place on the screen.
+    
+    Signed-off-by: Kathy Lussier <klussier@masslnc.org>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+2      0       Open-ILS/src/templates/staff/share/t_help_popover.tt2
+
+commit c70a7a11f878983d02192239c74129ad25e44feb
+Author: Kathy Lussier <klussier@masslnc.org>
+Date:   Tue Mar 13 12:54:42 2018 -0400
+
+    LP#1755543: Add help tips to Print Item Labels Settings tab
+    
+    Instead of providing lengthy settings descriptions, which result in a lot of
+    scrolling on the Print Item Template page, let's use help tips that can
+    provide guidance to new users without adding clutter to the interface.
+    
+    This commit also turns the field labels into HTML labels for improved
+    accessibility and removes borders on the page. The borders were helpful
+    when we displayed the help text on the page, but are no longer needed.
+    
+    Signed-off-by: Kathy Lussier <klussier@masslnc.org>
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+2      6       Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2
+
+commit cfb872e8432d4967ec3b03c7d31c32c98ed89522
+Author: Garry Collum <gcollum@gmail.com>
+Date:   Thu Jun 7 14:54:45 2018 -0400
+
+    LP#1755896: Web Client mobile menu font color contrast.
+    
+    When viewing the main menu in the web client in a small device or in a
+    browser with a width that is resized to less than 800px the menu
+    collapses and the submenu choices are difficult to read because of lack
+    of contrast.  This patch adds some contrast.
+    
+    To test:
+    1. View the web client in a browser and lessen the width until the menu
+       collapses, or view it in a small device.
+    2. Open some of the menu options to observe the submenus.
+    3. Apply the patch.
+    4. Refresh the browser and repeat steps 1-2 to view the more readable
+       submenus.
+    
+    Signed-off-by: Garry Collum <gcollum@gmail.com>
+    Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+6      0       Open-ILS/src/templates/staff/css/style.css.tt2
+
+commit 14a6b09d55c975b3854cfd0720898e0308f39813
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Mon Nov 5 16:40:34 2018 -0500
+
+    LP#1789747: tweak disabling the offline circulation link
+    
+    This patch ensures that the menu link can be fully disabled by
+    giving the "disabled" CSS class to the anchor as well as the
+    li that contains it. It also adds a CSS rule to the disabled
+    class to force the cursor to not-allowed; due to a quirk, an
+    anchor with "pointer-events: none" will not respect "cursor: not-allowed",
+    but the containing element can have that cursor rule.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+3      0       Open-ILS/src/templates/staff/css/style.css.tt2
+1      1       Open-ILS/src/templates/staff/navbar.tt2
+
+commit aa99255b39d8122054bc0646951c3212e44be506
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Sep 4 15:09:31 2018 -0400
+
+    LP#1789747 More SharedWorker sanity checks for egLovefield
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Rogan Hamby <rhamby@equinoxinitiative.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+5      3       Open-ILS/web/js/ui/default/staff/services/lovefield.js
+
+commit 8f23343b76ebf8f556a5426b478c331698a3a2a6
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Thu Aug 30 13:19:03 2018 -0400
+
+    LP#1789747 SharedWorker sanity checks
+    
+    Avoid page load failures when SharedWorkers (for offline mode) are
+    not supported.  Additionally, disable the Offline Circulation menu
+    option when SharedWorkers are not supported.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+1      1       Open-ILS/src/templates/staff/navbar.tt2
+4      3       Open-ILS/web/js/ui/default/staff/app.js
+11     4       Open-ILS/web/js/ui/default/staff/services/env.js
+3      3       Open-ILS/web/js/ui/default/staff/services/lovefield.js
+6      2       Open-ILS/web/js/ui/default/staff/services/navbar.js
+15     8       Open-ILS/web/js/ui/default/staff/services/org.js
+2      2       Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit b3fc4d63034434e31726ded935b80009d8c3e432
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Tue Oct 16 14:15:53 2018 -0400
+
+    LP#1798170 Load grid data after settings are applied
+    
+    Ensure the initial grid data fetching code does not fire until after the
+    grid configuration has been retrieved and applied.  This fixes an issue
+    where custom columns would contain no values on initial grid load.
+    
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+    Signed-off-by: Jason Boyer <jboyer@library.in.gov>
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+
+17     14      Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 48266b6728fea1478dc710b6e8b9eb7922cf31cc
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Mon Nov 5 12:49:35 2018 -0500
+
+    LP#1801759: add mod_remoteip configuration to example Apache config
+    
+    Text taken from an OpenSRF patch added by Bill Erickson per bug 1684970.
+    
+    This patch adds an Apache configuration stanza that uses mod_remoteip
+    to pass the user agent's IP address to the HTTP translator. It is meant
+    for when Apache is being run behind a proxy such as NGINX.
+    
+    To test
+    -------
+    [1] Set up Evergreen with Apache and the WebSockets server running
+        behind a proxy such as NGINX.
+    [2] Enable mod_remoteip (e.g., sudo a2enmod remoteip).
+    [3] Apply the Apache configuration change in this patch, uncommenting
+        out the directives and (if necessary) updating the internal IP
+        address of the proxy.
+    [4] Reload Apache.
+    [5] Perform an action that uses the HTTP translator, e.g., adding a
+        vendor record using the Dojo interface.
+    [6] Verify that the client IP logged is that of the user agent, not
+        the proxy.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+10     0       Open-ILS/examples/apache_24/eg_vhost.conf.in
+
+commit 5fdaf3125f54b8855fbcace13b4e855bc5e10078
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date:   Mon Nov 5 12:54:24 2018 -0500
+
+    LP#1801759: enable mod_remoteip by default
+    
+    Use of mod_remoteip is technically optional, since it's not
+    required that Evergreen run with a proxy such as NGINX. However, since
+    use of proxies is common, enablig mod_remoteip just in case could
+    be useful with minimal cost.
+    
+    Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx@gmail.com>
+
+2      1       Open-ILS/src/extras/install/Makefile.debian-jessie
+2      1       Open-ILS/src/extras/install/Makefile.debian-stretch
+2      1       Open-ILS/src/extras/install/Makefile.ubuntu-trusty
+2      1       Open-ILS/src/extras/install/Makefile.ubuntu-xenial
+
+commit 0fd636e97babdce8b4526fa1d1d412a84a92e627
+Author: Jane Sandberg <sandbej@linnbenton.edu>
+Date:   Sun Nov 4 15:25:44 2018 -0800
+
+    Docs: updating holding, item, call number terminology
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+9      5       docs/admin/Org_Unit_Proximity_Adjustments.adoc
+5      5       docs/admin/circulation_limit_groups.adoc
+1      1       docs/admin/cn_prefixes_and_suffixes.adoc
+52     52      docs/admin/copy_locations.adoc
+1      1       docs/admin/popularity_badges_web_client.adoc
+23     23      docs/admin_initial_setup/borrowing_items.adoc
+12     12      docs/admin_initial_setup/migrating_your_data.adoc
+60     60      docs/cataloging/copy-buckets_web_client.adoc
+10     10      docs/cataloging/holdings_templates.adoc
+14     14      docs/cataloging/monograph_parts.adoc
+6      9       docs/cataloging/tpac_copy_edit_links.adoc
+14     11      docs/cataloging/volcopy_editor.adoc
+9      10      docs/development/data_unapi.adoc
+
+commit 17eabd929d0967de016b03e48f5826cfdd8ddbce
+Author: Remington Steed <rjs7@calvin.edu>
+Date:   Fri Nov 2 15:00:55 2018 -0400
+
+    Docs: Update old command osrf_ctl.sh to osrf_control
+    
+    Thanks to Rosie Le Faive for catching this problem, and providing the
+    solution!
+    
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+
+2      1       docs/admin/marc_templates.adoc
+
+commit 71cf9a7def46ce3fa72e749d31fc62f5758d8df0
+Author: Jason Boyer <jboyer@library.in.gov>
+Date:   Fri Oct 26 09:16:14 2018 -0400
+
+    LP1796988: Fix Saving Last Copy Template
+    
+    A line that belongs within a forEach loop escaped
+    its bounds and caused a reference error that prevented
+    the applyTemplate function from saving the last used
+    template. This branch ushers this line back to its
+    pen where it can trouble us no more.
+    
+    Signed-off-by: Jason Boyer <jboyer@library.in.gov>
+    Signed-off-by: Janet Schrader <jschrader@cwmars.org>
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
+
+1      1       Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 899733acd11c22e96dcb821bd9d0f3ee8a02b691
+Author: abneiman <abneiman@equinoxinitiative.org>
+Date:   Thu Nov 1 13:59:02 2018 -0700
+
+    Docs: Emergency Closing Handler
+    
+    Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
+
+88     0       docs/admin/emergency_closing_handler.adoc
+-      -       docs/media/ECHClosedDatesEditorAddClosing.png
+-      -       docs/media/ECHClosingSnowDay.png
+-      -       docs/media/ECHEditClosing.png
+-      -       docs/media/ECHEditClosingModal.png
+-      -       docs/media/ECHLibraryClosingConstruction.png
+-      -       docs/media/ECHLibraryClosingDetailed.png
+-      -       docs/media/ECHLibraryClosingDone.png
+-      -       docs/media/ECHLibraryClosingMultipleDays.png
+2      0       docs/root.adoc
+2      0       docs/root_staff_client_admin.adoc
+ create mode 100644 docs/admin/emergency_closing_handler.adoc
+ create mode 100644 docs/media/ECHClosedDatesEditorAddClosing.png
+ create mode 100644 docs/media/ECHClosingSnowDay.png
+ create mode 100644 docs/media/ECHEditClosing.png
+ create mode 100644 docs/media/ECHEditClosingModal.png
+ create mode 100644 docs/media/ECHLibraryClosingConstruction.png
+ create mode 100644 docs/media/ECHLibraryClosingDetailed.png
+ create mode 100644 docs/media/ECHLibraryClosingDone.png
+ create mode 100644 docs/media/ECHLibraryClosingMultipleDays.png
+
+commit f6af63d62f7a183e36fc93083bfb64a5b4c8eac1
+Author: Remington Steed <rjs7@calvin.edu>
+Date:   Wed Oct 31 16:53:17 2018 -0400
+
+    Docs: Fix minor release notes formatting bug
+    
+    Signed-off-by: Remington Steed <rjs7@calvin.edu>
+
+1      1       docs/RELEASE_NOTES_3_2.adoc
+
+commit ae2b807bc0f9e53aeb1a22fdf4bb5cf6ef57315e
+Author: Jason Stephenson <jason@sigio.com>
+Date:   Thu Oct 25 09:35:37 2018 -0400
+
+    Forward Port Release Notes for 3.0.13.
+    
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
+
+21     0       docs/RELEASE_NOTES_3_0.adoc
+
+commit 604fe387d0fd176ebd94b3bc67185730b4486746
+Author: Dan Wells <dbw2@calvin.edu>
+Date:   Wed Oct 24 18:14:28 2018 -0400
+
+    Forward-port 3.2.1 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2@calvin.edu>
+
+5      0       Open-ILS/src/sql/Pg/version-upgrade/3.2.0-3.2.1-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.2.0-3.2.1-upgrade-db.sql
index d750216..8fadc56 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 "3-2-2";
 }
 
 __PACKAGE__->register_method(
index b50f39d..f96b940 100644 (file)
@@ -93,6 +93,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 ('1138', :eg_version); -- rhamby/berick/bshum
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.2.2', :eg_version);
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.2.1-3.2.2-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.2.1-3.2.2-upgrade-db.sql
new file mode 100644 (file)
index 0000000..15015d7
--- /dev/null
@@ -0,0 +1,600 @@
+--Upgrade Script for 3.2.1 to 3.2.2
+\set eg_version '''3.2.2'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.2.2', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('1134', :eg_version);
+
+CREATE OR REPLACE FUNCTION metabib.staged_browse(query text, fields integer[], context_org integer, context_locations integer[], staff boolean, browse_superpage_size integer, count_up_from_zero boolean, result_limit integer, next_pivot_pos integer)
+ RETURNS SETOF metabib.flat_browse_entry_appearance
+AS $f$
+DECLARE
+    curs                    REFCURSOR;
+    rec                     RECORD;
+    qpfts_query             TEXT;
+    aqpfts_query            TEXT;
+    afields                 INT[];
+    bfields                 INT[];
+    result_row              metabib.flat_browse_entry_appearance%ROWTYPE;
+    results_skipped         INT := 0;
+    row_counter             INT := 0;
+    row_number              INT;
+    slice_start             INT;
+    slice_end               INT;
+    full_end                INT;
+    all_records             BIGINT[];
+    all_brecords             BIGINT[];
+    all_arecords            BIGINT[];
+    superpage_of_records    BIGINT[];
+    superpage_size          INT;
+    c_tests                 TEXT := '';
+    b_tests                 TEXT := '';
+    c_orgs                  INT[];
+    unauthorized_entry      RECORD;
+BEGIN
+    IF count_up_from_zero THEN
+        row_number := 0;
+    ELSE
+        row_number := -1;
+    END IF;
+
+    IF NOT staff THEN
+        SELECT x.c_attrs, x.b_attrs INTO c_tests, b_tests FROM asset.patron_default_visibility_mask() x;
+    END IF;
+
+    -- b_tests supplies its own query_int operator, c_tests does not
+    IF c_tests <> '' THEN c_tests := c_tests || '&'; END IF;
+
+    SELECT ARRAY_AGG(id) INTO c_orgs FROM actor.org_unit_descendants(context_org);
+
+    c_tests := c_tests || search.calculate_visibility_attribute_test('circ_lib',c_orgs)
+               || '&' || search.calculate_visibility_attribute_test('owning_lib',c_orgs);
+
+    PERFORM 1 FROM config.internal_flag WHERE enabled AND name = 'opac.located_uri.act_as_copy';
+    IF FOUND THEN
+        b_tests := b_tests || search.calculate_visibility_attribute_test(
+            'luri_org',
+            (SELECT ARRAY_AGG(id) FROM actor.org_unit_full_path(context_org) x)
+        );
+    ELSE
+        b_tests := b_tests || search.calculate_visibility_attribute_test(
+            'luri_org',
+            (SELECT ARRAY_AGG(id) FROM actor.org_unit_ancestors(context_org) x)
+        );
+    END IF;
+
+    IF context_locations THEN
+        IF c_tests <> '' THEN c_tests := c_tests || '&'; END IF;
+        c_tests := c_tests || search.calculate_visibility_attribute_test('location',context_locations);
+    END IF;
+
+    OPEN curs NO SCROLL FOR EXECUTE query;
+
+    LOOP
+        FETCH curs INTO rec;
+        IF NOT FOUND THEN
+            IF result_row.pivot_point IS NOT NULL THEN
+                RETURN NEXT result_row;
+            END IF;
+            RETURN;
+        END IF;
+
+        --Is unauthorized?
+        SELECT INTO unauthorized_entry *
+        FROM metabib.browse_entry_simple_heading_map mbeshm
+        INNER JOIN authority.simple_heading ash ON ( mbeshm.simple_heading = ash.id )
+        INNER JOIN authority.control_set_authority_field acsaf ON ( acsaf.id = ash.atag )
+        JOIN authority.heading_field ahf ON (ahf.id = acsaf.heading_field)
+        WHERE mbeshm.entry = rec.id
+        AND   ahf.heading_purpose = 'variant';
+
+        -- Gather aggregate data based on the MBE row we're looking at now, authority axis
+        IF (unauthorized_entry.record IS NOT NULL) THEN
+            --unauthorized term belongs to an auth linked to a bib?
+            SELECT INTO all_arecords, result_row.sees, afields
+                    ARRAY_AGG(DISTINCT abl.bib),
+                    STRING_AGG(DISTINCT abl.authority::TEXT, $$,$$),
+                    ARRAY_AGG(DISTINCT map.metabib_field)
+            FROM authority.bib_linking abl
+            INNER JOIN authority.control_set_auth_field_metabib_field_map_refs map ON (
+                    map.authority_field = unauthorized_entry.atag
+                    AND map.metabib_field = ANY(fields)
+            )
+            WHERE abl.authority = unauthorized_entry.record;
+        ELSE
+            --do usual procedure
+            SELECT INTO all_arecords, result_row.sees, afields
+                    ARRAY_AGG(DISTINCT abl.bib), -- bibs to check for visibility
+                    STRING_AGG(DISTINCT aal.source::TEXT, $$,$$), -- authority record ids
+                    ARRAY_AGG(DISTINCT map.metabib_field) -- authority-tag-linked CMF rows
+
+            FROM  metabib.browse_entry_simple_heading_map mbeshm
+                    JOIN authority.simple_heading ash ON ( mbeshm.simple_heading = ash.id )
+                    JOIN authority.authority_linking aal ON ( ash.record = aal.source )
+                    JOIN authority.bib_linking abl ON ( aal.target = abl.authority )
+                    JOIN authority.control_set_auth_field_metabib_field_map_refs map ON (
+                        ash.atag = map.authority_field
+                        AND map.metabib_field = ANY(fields)
+                    )
+                    JOIN authority.control_set_authority_field acsaf ON (
+                        map.authority_field = acsaf.id
+                    )
+                    JOIN authority.heading_field ahf ON (ahf.id = acsaf.heading_field)
+              WHERE mbeshm.entry = rec.id
+              AND   ahf.heading_purpose = 'variant';
+
+        END IF;
+
+        -- Gather aggregate data based on the MBE row we're looking at now, bib axis
+        SELECT INTO all_brecords, result_row.authorities, bfields
+                ARRAY_AGG(DISTINCT source),
+                STRING_AGG(DISTINCT authority::TEXT, $$,$$),
+                ARRAY_AGG(DISTINCT def)
+          FROM  metabib.browse_entry_def_map
+          WHERE entry = rec.id
+                AND def = ANY(fields);
+
+        SELECT INTO result_row.fields STRING_AGG(DISTINCT x::TEXT, $$,$$) FROM UNNEST(afields || bfields) x;
+
+        result_row.sources := 0;
+        result_row.asources := 0;
+
+        -- Bib-linked vis checking
+        IF ARRAY_UPPER(all_brecords,1) IS NOT NULL THEN
+
+            SELECT  INTO result_row.sources COUNT(DISTINCT b.id)
+              FROM  biblio.record_entry b
+                    LEFT JOIN asset.copy_vis_attr_cache acvac ON (acvac.record = b.id)
+              WHERE b.id = ANY(all_brecords[1:browse_superpage_size])
+                    AND (
+                        acvac.vis_attr_vector @@ c_tests::query_int
+                        OR b.vis_attr_vector @@ b_tests::query_int
+                    );
+
+            result_row.accurate := TRUE;
+
+        END IF;
+
+        -- Authority-linked vis checking
+        IF ARRAY_UPPER(all_arecords,1) IS NOT NULL THEN
+
+            SELECT  INTO result_row.asources COUNT(DISTINCT b.id)
+              FROM  biblio.record_entry b
+                    LEFT JOIN asset.copy_vis_attr_cache acvac ON (acvac.record = b.id)
+              WHERE b.id = ANY(all_arecords[1:browse_superpage_size])
+                    AND (
+                        acvac.vis_attr_vector @@ c_tests::query_int
+                        OR b.vis_attr_vector @@ b_tests::query_int
+                    );
+
+            result_row.aaccurate := TRUE;
+
+        END IF;
+
+        IF result_row.sources > 0 OR result_row.asources > 0 THEN
+
+            -- The function that calls this function needs row_number in order
+            -- to correctly order results from two different runs of this
+            -- functions.
+            result_row.row_number := row_number;
+
+            -- Now, if row_counter is still less than limit, return a row.  If
+            -- not, but it is less than next_pivot_pos, continue on without
+            -- returning actual result rows until we find
+            -- that next pivot, and return it.
+
+            IF row_counter < result_limit THEN
+                result_row.browse_entry := rec.id;
+                result_row.value := rec.value;
+
+                RETURN NEXT result_row;
+            ELSE
+                result_row.browse_entry := NULL;
+                result_row.authorities := NULL;
+                result_row.fields := NULL;
+                result_row.value := NULL;
+                result_row.sources := NULL;
+                result_row.sees := NULL;
+                result_row.accurate := NULL;
+                result_row.aaccurate := NULL;
+                result_row.pivot_point := rec.id;
+
+                IF row_counter >= next_pivot_pos THEN
+                    RETURN NEXT result_row;
+                    RETURN;
+                END IF;
+            END IF;
+
+            IF count_up_from_zero THEN
+                row_number := row_number + 1;
+            ELSE
+                row_number := row_number - 1;
+            END IF;
+
+            -- row_counter is different from row_number.
+            -- It simply counts up from zero so that we know when
+            -- we've reached our limit.
+            row_counter := row_counter + 1;
+        END IF;
+    END LOOP;
+END;
+$f$ LANGUAGE plpgsql ROWS 10;
+
+
+SELECT evergreen.upgrade_deps_block_check('1136', :eg_version);
+
+-- update mods33 data entered by 1100 with a format of 'mods32'
+-- harmless if you have not run 1100 yet
+UPDATE config.metabib_field SET format = 'mods33' WHERE format = 'mods32' and id in (38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50);
+
+-- change the default format to 'mods33'
+ALTER TABLE config.metabib_field ALTER COLUMN format SET DEFAULT 'mods33'::text;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('1137', :eg_version);
+
+-- This is a placeholder for 1137 which will be a backported version of the
+-- actor.usr_merge function for rel_3_1. This script does nothing for
+-- rel_3_2 and later.
+
+
+SELECT evergreen.upgrade_deps_block_check('1138', :eg_version);
+
+CREATE OR REPLACE FUNCTION actor.usr_merge( src_usr INT, dest_usr INT, del_addrs BOOLEAN, del_cards BOOLEAN, deactivate_cards BOOLEAN ) RETURNS VOID AS $$
+DECLARE
+       suffix TEXT;
+       bucket_row RECORD;
+       picklist_row RECORD;
+       queue_row RECORD;
+       folder_row RECORD;
+BEGIN
+
+    -- Bail if src_usr equals dest_usr because the result of merging a
+    -- user with itself is not what you want.
+    IF src_usr = dest_usr THEN
+        RETURN;
+    END IF;
+
+    -- do some initial cleanup 
+    UPDATE actor.usr SET card = NULL WHERE id = src_usr;
+    UPDATE actor.usr SET mailing_address = NULL WHERE id = src_usr;
+    UPDATE actor.usr SET billing_address = NULL WHERE id = src_usr;
+
+    -- actor.*
+    IF del_cards THEN
+        DELETE FROM actor.card where usr = src_usr;
+    ELSE
+        IF deactivate_cards THEN
+            UPDATE actor.card SET active = 'f' WHERE usr = src_usr;
+        END IF;
+        UPDATE actor.card SET usr = dest_usr WHERE usr = src_usr;
+    END IF;
+
+
+    IF del_addrs THEN
+        DELETE FROM actor.usr_address WHERE usr = src_usr;
+    ELSE
+        UPDATE actor.usr_address SET usr = dest_usr WHERE usr = src_usr;
+    END IF;
+
+    UPDATE actor.usr_note SET usr = dest_usr WHERE usr = src_usr;
+    -- dupes are technically OK in actor.usr_standing_penalty, should manually delete them...
+    UPDATE actor.usr_standing_penalty SET usr = dest_usr WHERE usr = src_usr;
+    PERFORM actor.usr_merge_rows('actor.usr_org_unit_opt_in', 'usr', src_usr, dest_usr);
+    PERFORM actor.usr_merge_rows('actor.usr_setting', 'usr', src_usr, dest_usr);
+
+    -- permission.*
+    PERFORM actor.usr_merge_rows('permission.usr_perm_map', 'usr', src_usr, dest_usr);
+    PERFORM actor.usr_merge_rows('permission.usr_object_perm_map', 'usr', src_usr, dest_usr);
+    PERFORM actor.usr_merge_rows('permission.usr_grp_map', 'usr', src_usr, dest_usr);
+    PERFORM actor.usr_merge_rows('permission.usr_work_ou_map', 'usr', src_usr, dest_usr);
+
+
+    -- container.*
+       
+       -- For each *_bucket table: transfer every bucket belonging to src_usr
+       -- into the custody of dest_usr.
+       --
+       -- In order to avoid colliding with an existing bucket owned by
+       -- the destination user, append the source user's id (in parenthesese)
+       -- to the name.  If you still get a collision, add successive
+       -- spaces to the name and keep trying until you succeed.
+       --
+       FOR bucket_row in
+               SELECT id, name
+               FROM   container.biblio_record_entry_bucket
+               WHERE  owner = src_usr
+       LOOP
+               suffix := ' (' || src_usr || ')';
+               LOOP
+                       BEGIN
+                               UPDATE  container.biblio_record_entry_bucket
+                               SET     owner = dest_usr, name = name || suffix
+                               WHERE   id = bucket_row.id;
+                       EXCEPTION WHEN unique_violation THEN
+                               suffix := suffix || ' ';
+                               CONTINUE;
+                       END;
+                       EXIT;
+               END LOOP;
+       END LOOP;
+
+       FOR bucket_row in
+               SELECT id, name
+               FROM   container.call_number_bucket
+               WHERE  owner = src_usr
+       LOOP
+               suffix := ' (' || src_usr || ')';
+               LOOP
+                       BEGIN
+                               UPDATE  container.call_number_bucket
+                               SET     owner = dest_usr, name = name || suffix
+                               WHERE   id = bucket_row.id;
+                       EXCEPTION WHEN unique_violation THEN
+                               suffix := suffix || ' ';
+                               CONTINUE;
+                       END;
+                       EXIT;
+               END LOOP;
+       END LOOP;
+
+       FOR bucket_row in
+               SELECT id, name
+               FROM   container.copy_bucket
+               WHERE  owner = src_usr
+       LOOP
+               suffix := ' (' || src_usr || ')';
+               LOOP
+                       BEGIN
+                               UPDATE  container.copy_bucket
+                               SET     owner = dest_usr, name = name || suffix
+                               WHERE   id = bucket_row.id;
+                       EXCEPTION WHEN unique_violation THEN
+                               suffix := suffix || ' ';
+                               CONTINUE;
+                       END;
+                       EXIT;
+               END LOOP;
+       END LOOP;
+
+       FOR bucket_row in
+               SELECT id, name
+               FROM   container.user_bucket
+               WHERE  owner = src_usr
+       LOOP
+               suffix := ' (' || src_usr || ')';
+               LOOP
+                       BEGIN
+                               UPDATE  container.user_bucket
+                               SET     owner = dest_usr, name = name || suffix
+                               WHERE   id = bucket_row.id;
+                       EXCEPTION WHEN unique_violation THEN
+                               suffix := suffix || ' ';
+                               CONTINUE;
+                       END;
+                       EXIT;
+               END LOOP;
+       END LOOP;
+
+       UPDATE container.user_bucket_item SET target_user = dest_usr WHERE target_user = src_usr;
+
+    -- vandelay.*
+       -- transfer queues the same way we transfer buckets (see above)
+       FOR queue_row in
+               SELECT id, name
+               FROM   vandelay.queue
+               WHERE  owner = src_usr
+       LOOP
+               suffix := ' (' || src_usr || ')';
+               LOOP
+                       BEGIN
+                               UPDATE  vandelay.queue
+                               SET     owner = dest_usr, name = name || suffix
+                               WHERE   id = queue_row.id;
+                       EXCEPTION WHEN unique_violation THEN
+                               suffix := suffix || ' ';
+                               CONTINUE;
+                       END;
+                       EXIT;
+               END LOOP;
+       END LOOP;
+
+    UPDATE vandelay.session_tracker SET usr = dest_usr WHERE usr = src_usr;
+
+    -- money.*
+    PERFORM actor.usr_merge_rows('money.collections_tracker', 'usr', src_usr, dest_usr);
+    PERFORM actor.usr_merge_rows('money.collections_tracker', 'collector', src_usr, dest_usr);
+    UPDATE money.billable_xact SET usr = dest_usr WHERE usr = src_usr;
+    UPDATE money.billing SET voider = dest_usr WHERE voider = src_usr;
+    UPDATE money.bnm_payment SET accepting_usr = dest_usr WHERE accepting_usr = src_usr;
+
+    -- action.*
+    UPDATE action.circulation SET usr = dest_usr WHERE usr = src_usr;
+    UPDATE action.circulation SET circ_staff = dest_usr WHERE circ_staff = src_usr;
+    UPDATE action.circulation SET checkin_staff = dest_usr WHERE checkin_staff = src_usr;
+    UPDATE action.usr_circ_history SET usr = dest_usr WHERE usr = src_usr;
+
+    UPDATE action.hold_request SET usr = dest_usr WHERE usr = src_usr;
+    UPDATE action.hold_request SET fulfillment_staff = dest_usr WHERE fulfillment_staff = src_usr;
+    UPDATE action.hold_request SET requestor = dest_usr WHERE requestor = src_usr;
+    UPDATE action.hold_notification SET notify_staff = dest_usr WHERE notify_staff = src_usr;
+
+    UPDATE action.in_house_use SET staff = dest_usr WHERE staff = src_usr;
+    UPDATE action.non_cataloged_circulation SET staff = dest_usr WHERE staff = src_usr;
+    UPDATE action.non_cataloged_circulation SET patron = dest_usr WHERE patron = src_usr;
+    UPDATE action.non_cat_in_house_use SET staff = dest_usr WHERE staff = src_usr;
+    UPDATE action.survey_response SET usr = dest_usr WHERE usr = src_usr;
+
+    -- acq.*
+    UPDATE acq.fund_allocation SET allocator = dest_usr WHERE allocator = src_usr;
+       UPDATE acq.fund_transfer SET transfer_user = dest_usr WHERE transfer_user = src_usr;
+    UPDATE acq.invoice SET closed_by = dest_usr WHERE closed_by = src_usr;
+
+       -- transfer picklists the same way we transfer buckets (see above)
+       FOR picklist_row in
+               SELECT id, name
+               FROM   acq.picklist
+               WHERE  owner = src_usr
+       LOOP
+               suffix := ' (' || src_usr || ')';
+               LOOP
+                       BEGIN
+                               UPDATE  acq.picklist
+                               SET     owner = dest_usr, name = name || suffix
+                               WHERE   id = picklist_row.id;
+                       EXCEPTION WHEN unique_violation THEN
+                               suffix := suffix || ' ';
+                               CONTINUE;
+                       END;
+                       EXIT;
+               END LOOP;
+       END LOOP;
+
+    UPDATE acq.purchase_order SET owner = dest_usr WHERE owner = src_usr;
+    UPDATE acq.po_note SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE acq.po_note SET editor = dest_usr WHERE editor = src_usr;
+    UPDATE acq.provider_note SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE acq.provider_note SET editor = dest_usr WHERE editor = src_usr;
+    UPDATE acq.lineitem_note SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE acq.lineitem_note SET editor = dest_usr WHERE editor = src_usr;
+    UPDATE acq.lineitem_usr_attr_definition SET usr = dest_usr WHERE usr = src_usr;
+
+    -- asset.*
+    UPDATE asset.copy SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE asset.copy SET editor = dest_usr WHERE editor = src_usr;
+    UPDATE asset.copy_note SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE asset.call_number SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE asset.call_number SET editor = dest_usr WHERE editor = src_usr;
+    UPDATE asset.call_number_note SET creator = dest_usr WHERE creator = src_usr;
+
+    -- serial.*
+    UPDATE serial.record_entry SET creator = dest_usr WHERE creator = src_usr;
+    UPDATE serial.record_entry SET editor = dest_usr WHERE editor = src_usr;
+
+    -- reporter.*
+    -- It's not uncommon to define the reporter schema in a replica 
+    -- DB only, so don't assume these tables exist in the write DB.
+    BEGIN
+       UPDATE reporter.template SET owner = dest_usr WHERE owner = src_usr;
+    EXCEPTION WHEN undefined_table THEN
+        -- do nothing
+    END;
+    BEGIN
+       UPDATE reporter.report SET owner = dest_usr WHERE owner = src_usr;
+    EXCEPTION WHEN undefined_table THEN
+        -- do nothing
+    END;
+    BEGIN
+       UPDATE reporter.schedule SET runner = dest_usr WHERE runner = src_usr;
+    EXCEPTION WHEN undefined_table THEN
+        -- do nothing
+    END;
+    BEGIN
+               -- transfer folders the same way we transfer buckets (see above)
+               FOR folder_row in
+                       SELECT id, name
+                       FROM   reporter.template_folder
+                       WHERE  owner = src_usr
+               LOOP
+                       suffix := ' (' || src_usr || ')';
+                       LOOP
+                               BEGIN
+                                       UPDATE  reporter.template_folder
+                                       SET     owner = dest_usr, name = name || suffix
+                                       WHERE   id = folder_row.id;
+                               EXCEPTION WHEN unique_violation THEN
+                                       suffix := suffix || ' ';
+                                       CONTINUE;
+                               END;
+                               EXIT;
+                       END LOOP;
+               END LOOP;
+    EXCEPTION WHEN undefined_table THEN
+        -- do nothing
+    END;
+    BEGIN
+               -- transfer folders the same way we transfer buckets (see above)
+               FOR folder_row in
+                       SELECT id, name
+                       FROM   reporter.report_folder
+                       WHERE  owner = src_usr
+               LOOP
+                       suffix := ' (' || src_usr || ')';
+                       LOOP
+                               BEGIN
+                                       UPDATE  reporter.report_folder
+                                       SET     owner = dest_usr, name = name || suffix
+                                       WHERE   id = folder_row.id;
+                               EXCEPTION WHEN unique_violation THEN
+                                       suffix := suffix || ' ';
+                                       CONTINUE;
+                               END;
+                               EXIT;
+                       END LOOP;
+               END LOOP;
+    EXCEPTION WHEN undefined_table THEN
+        -- do nothing
+    END;
+    BEGIN
+               -- transfer folders the same way we transfer buckets (see above)
+               FOR folder_row in
+                       SELECT id, name
+                       FROM   reporter.output_folder
+                       WHERE  owner = src_usr
+               LOOP
+                       suffix := ' (' || src_usr || ')';
+                       LOOP
+                               BEGIN
+                                       UPDATE  reporter.output_folder
+                                       SET     owner = dest_usr, name = name || suffix
+                                       WHERE   id = folder_row.id;
+                               EXCEPTION WHEN unique_violation THEN
+                                       suffix := suffix || ' ';
+                                       CONTINUE;
+                               END;
+                               EXIT;
+                       END LOOP;
+               END LOOP;
+    EXCEPTION WHEN undefined_table THEN
+        -- do nothing
+    END;
+
+    -- propagate preferred name values from the source user to the
+    -- destination user, but only when values are not being replaced.
+    WITH susr AS (SELECT * FROM actor.usr WHERE id = src_usr)
+    UPDATE actor.usr SET 
+        pref_prefix = 
+            COALESCE(pref_prefix, (SELECT pref_prefix FROM susr)),
+        pref_first_given_name = 
+            COALESCE(pref_first_given_name, (SELECT pref_first_given_name FROM susr)),
+        pref_second_given_name = 
+            COALESCE(pref_second_given_name, (SELECT pref_second_given_name FROM susr)),
+        pref_family_name = 
+            COALESCE(pref_family_name, (SELECT pref_family_name FROM susr)),
+        pref_suffix = 
+            COALESCE(pref_suffix, (SELECT pref_suffix FROM susr))
+    WHERE id = dest_usr;
+
+    -- Copy and deduplicate name keywords
+    -- String -> array -> rows -> DISTINCT -> array -> string
+    WITH susr AS (SELECT * FROM actor.usr WHERE id = src_usr),
+         dusr AS (SELECT * FROM actor.usr WHERE id = dest_usr)
+    UPDATE actor.usr SET name_keywords = (
+        WITH keywords AS (
+            SELECT DISTINCT UNNEST(
+                REGEXP_SPLIT_TO_ARRAY(
+                    COALESCE((SELECT name_keywords FROM susr), '') || ' ' ||
+                    COALESCE((SELECT name_keywords FROM dusr), ''),  E'\\s+'
+                )
+            ) AS parts
+        ) SELECT ARRAY_TO_STRING(ARRAY_AGG(kw.parts), ' ') FROM keywords kw
+    ) WHERE id = dest_usr;
+
+    -- Finally, delete the source user
+    PERFORM actor.usr_delete(src_usr,dest_usr);
+
+END;
+$$ LANGUAGE plpgsql;
+
+COMMIT;
index b2b87b6..2a23517 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_3_2_2</p>
 <h2>What is Evergreen?</h2>
 <blockquote>
 <p>
index 0613a13..cea4d0c 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_3_2_2");
 pref("open-ils.repository.author","$Author$");
 pref("open-ils.repository.revision","$Revision$");
 pref("open-ils.repository.date","$Date$");
index a954357..ed4c4fe 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 "3.2"
 !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 1ee2103e6f619066236accc1c094d89f7ab3ff97..0000000000000000000000000000000000000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-docs/installation/server_installation.adoc
\ No newline at end of file
diff --git a/README b/README
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..8b81d350f16517e15eedc21786bbea5cac349940
--- /dev/null
+++ b/README
@@ -0,0 +1,647 @@
+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 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/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, must perform one step before they 
+can proceed with the `./configure` step.
+
+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
+------------------------------------------------------------------------------
+
+Installing prerequisites
+------------------------
+
+  * **PostgreSQL**: The minimum supported version is 9.4.
+  * **Linux**: Evergreen has been tested on Debian Stretch (9), 
+    Debian Jessie (8), Ubuntu Xenial Xerus (16.04), and Ubuntu
+    Trusty Tahr (14.04).
+    If you are running an older version of these distributions, you may want 
+    to upgrade before upgrading Evergreen. For instructions on upgrading these
+    distributions, visit the Debian or Ubuntu websites.
+  * **OpenSRF**: The minimum supported version of OpenSRF is 3.0.0.
+
+
+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 (3.0.0 or later).
+   You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/
+2. On some distributions, it is necessary to install PostgreSQL 9.4+ from external
+   repositories.
++
+  * Ubuntu (Trusty) comes with an older version of PostgreSQL, so
+    steps are taken to automatically utilize the PostgreSQL
+    community's apt sources.
+    (For complete details, see: https://wiki.postgresql.org/wiki/Apt)
+  * Debian (Jessie/Stretch) and Ubuntu (Xenial) comes with PostgreSQL 9.4+,
+    so no additional steps are required.
++
+3. Issue the following commands as the *root* Linux account to install
+   prerequisites using the `Makefile.install` prerequisite installer,
+   substituting `debian-stretch`, `debian-jessie`,`ubuntu-xenial`,
+   or `ubuntu-trusty` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+4. OPTIONAL: Developer additions
++
+To perform certain developer tasks from a Git source code checkout, 
+additional packages may be required.  As the *root* Linux account:
++
+ * To install packages needed for retrieving and managing web dependencies,
+   use the <osname>-developer Makefile.install target.  Currently, 
+   this is only needed for building and installing the web
+   staff client.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-developer
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen translations, use
+   the <osname>-translator Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-translator
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen release bundles, use
+   the <osname>-packager Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-packager
+------------------------------------------------------------------------------
+
+Extra steps for web staff client
+--------------------------------
+
+[NOTE]
+Skip this entire section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/downloads
+
+Install dependencies for web staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+[NOTE]
+You may skip this section if you have installed the
+<<optional_developer_additions,optional developer additions>>.  You will still need to do the following
+steps in <<install_files_for_web_staff_client,Install files for web staff client>>.
+
+1. Install the long-term stability (LTS) release of
+https://nodejs.org[Node.js]. Add the Node.js `/bin` directory to your
+environment variable `PATH`.
+
+[[install_files_for_web_staff_client]]
+Install AngularJS files for web staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Building, Testing, Minification: The remaining steps all take place within
+   the staff JS web root:
++
+[source,sh]
+------------------------------------------------------------------------------
+cd $EVERGREEN_ROOT/Open-ILS/web/js/ui/default/staff/
+------------------------------------------------------------------------------
++
+2. Install Project-local Dependencies. npm inspects the 'package.json' file
+   for dependencies and fetches them from the Node package network.
++
+[source,sh]
+------------------------------------------------------------------------------
+npm install   # fetch JS dependencies
+------------------------------------------------------------------------------
++
+3. Run the build script.
++
+[source,sh]
+------------------------------------------------------------------------------
+# build, run tests, concat+minify
+npm run build-prod
+npm run test
+------------------------------------------------------------------------------
+
+[[install_files_for_angular_web_staff_client]]
+Install Angular files for web staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Building, Testing, Minification: The remaining steps all take place within
+   the Angular staff root:
++
+[source,sh]
+------------------------------------------------------------------------------
+cd $EVERGREEN_ROOT/Open-ILS/src/eg2/
+------------------------------------------------------------------------------
++
+2. Install Project-local Dependencies. npm inspects the 'package.json' file
+   for dependencies and fetches them from the Node package network.
++
+[source,sh]
+------------------------------------------------------------------------------
+npm install   # fetch JS dependencies
+------------------------------------------------------------------------------
++
+3. Run the build script.
++
+[source,sh]
+------------------------------------------------------------------------------
+# build and run tests
+ng build --prod
+npm run test
+------------------------------------------------------------------------------
+
+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 and copy
+   example configuration files to `/openils/conf`.
++
+[source, bash]
+------------------------------------------------------------------------------
+make install
+------------------------------------------------------------------------------
+
+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
+------------------------------------------------------------------------------
+
+Run ldconfig
+------------
+
+On Debian Stretch, run the following command as the root user:
+
+[source, bash]
+------------------------------------------------------------------------------
+ldconfig
+------------------------------------------------------------------------------
+
+Additional Instructions for Developers
+--------------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, 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/.
+------------------------------------------------------------------------------
+
+
+Configure the Apache Web server
+-------------------------------
+
+. Use the example configuration files to configure your Web server for 
+the Evergreen catalog, web staff client, Web services, and administration
+interfaces. Issue the following commands as the *root* Linux account:
++
+[source,bash]
+------------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/apache2/sites-available/eg.conf
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf
+cp Open-ILS/examples/apache_24/eg_startup      /etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------------
++
+. 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
+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
+------------------------------------------------------------------------------
++
+. 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):
+     * Replace `Require host 10.0.0.0/8` with `Require all granted`
+. Change the user for the Apache server.
+  * As the *root* Linux account, edit
+    `/etc/apache2/envvars`.  Change `export APACHE_RUN_USER=www-data` to 
+    `export APACHE_RUN_USER=opensrf`.
+. As the *root* Linux account, configure Apache with KeepAlive settings
+  appropriate for Evergreen. Higher values can improve the performance of a
+  single client by allowing multiple requests to be sent over the same TCP
+  connection, but increase the risk of using up all available Apache child
+  processes and memory.
+  * Edit `/etc/apache2/apache2.conf`.
+    a. Change `KeepAliveTimeout` to `1`.
+    b. Change `MaxKeepAliveRequests` to `100`.
+. As the *root* Linux account, configure the prefork module to start and keep
+  enough Apache servers available to provide quick responses to clients without
+  running out of memory. The following settings are a good starting point for a
+  site that exposes the default Evergreen catalogue to the web:
++
+.`/etc/apache2/mods-available/mpm_prefork.conf`
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers            15
+   MinSpareServers          5
+   MaxSpareServers         15
+   MaxRequestWorkers       75
+   MaxConnectionsPerChild 500
+</IfModule>
+------------------------------------------------------------------------------
++
+. As the *root* user, enable the mpm_prefork module:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dismod mpm_event
+a2enmod mpm_prefork
+------------------------------------------------------------------------------
++
+. As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite 000-default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+. As the *root* Linux account, enable Apache to write
+   to the lock directory; this is currently necessary because Apache
+   is running as the `opensrf` user:
++
+[source,bash]
+------------------------------------------------------------------------------
+chown opensrf /var/lock/apache2
+------------------------------------------------------------------------------
+
+Learn more about additional Apache options in the following sections:
+
+  * <<_apache_rewrite_tricks,Apache Rewrite Tricks>>
+  * <<_apache_access_handler_perl_module,Apache Access Handler Perl Module>>
+
+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 <<_creating_the_evergreen_database,Creating the Evergreen
+database>>, sets the database connection information in `opensrf.xml` for you.
+
+Configure action triggers for the Evergreen application
+-------------------------------------------------------
+_Action Triggers_ provide hooks for the system to perform actions when a given
+event occurs; for example, to generate reminder or overdue notices, the
+`checkout.due` hook is processed and events are triggered for potential actions
+if there is no checkin time.
+
+To enable the default set of hooks, issue the following command as the
+*opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/action_trigger_filters.json.example /openils/conf/action_trigger_filters.json
+------------------------------------------------------------------------------
+
+For more information about configuring and running action triggers, see
+<<_processing_action_triggers,Notifications / Action Triggers>>.
+
+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 on the machine of your choice using the following commands as the
+*root* Linux account:
+
+. 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-stretch
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-jessie
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-trusty
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-xenial
+------------------------------------------------------------------------------
+
+For a standalone PostgreSQL server, install the following Perl modules for your
+distribution as the *root* Linux account:
+
+.(Debian and Ubuntu) 
+No extra modules required for these distributions.
+
+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.
+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` 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.4 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.4 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_control -l --start-all
+------------------------------------------------------------------------------
++
+  ** If you receive the error message `bash: osrf_control: 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 web 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 org unit configuration.
+):
++
+[source, bash]
+------------------------------------------------------------------------------
+autogen.sh
+------------------------------------------------------------------------------
++
+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 web 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
+    ------------------------------------
+[[install-troubleshooting-1]]
+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 dacb5a3..54c5c7c 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, 3.2.2, open-ils-dev@list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [3.2.2])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])