[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_3_2_2 created. 90a17e5762f30c23abf990a1b332f881aaf52ecc

Evergreen Git git at git.evergreen-ils.org
Tue Nov 27 16:58:39 EST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, tags/rel_3_2_2 has been created
        at  90a17e5762f30c23abf990a1b332f881aaf52ecc (commit)

- Log -----------------------------------------------------------------
commit 90a17e5762f30c23abf990a1b332f881aaf52ecc
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Tue Nov 20 15:35:26 2018 -0500

    Bumping version numbers, adding Upgrade Script and Changelog
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/ChangeLog b/ChangeLog
index 1f72b2c..cb021e6 100644
--- 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 at 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 at calvin.edu>
+
+16	16	docs/installation/server_upgrade.adoc
+
+commit 99bad0f721f2d09fad4ff22960a5987ec360d20c
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Mon Feb 24 12:09:57 2014 -0500
+
+    Bump OpenILS.pm version
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit f364ec12cc94cd04f86de4df0dfef5ddb19c3c3b
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Tue Nov 20 15:23:07 2018 -0500
+
+    Translation updates - po files
+    
+    Signed-off-by: Dan Wells <dbw2 at 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 at calvin.edu>
+Date:   Tue Nov 20 15:17:31 2018 -0500
+
+    Translation updates - newpot
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+14	14	build/i18n/po/tpac/tpac.pot
+82	82	build/i18n/po/webstaff/webstaff.pot
+
+commit 017679d0279fd113120c47d2a083b7554f878bed
+Author: Dan Wells <dbw2 at 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 at calvin.edu>
+
+2	0	docs/RELEASE_NOTES_3_2.adoc
+
+commit 73667df4a369e91b523a0bce9064b6664a740e47
+Author: Dan Wells <dbw2 at 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 at calvin.edu>
+    Signed-off-by: Jason Boyer <jboyer at 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 at users.noreply.github.com>
+Date:   Tue Nov 20 09:50:54 2018 -0800
+
+    Docs: Multilingual search documentation
+    
+    Signed-off-by: Jane Sandberg <sandbej at 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 at calvin.edu>
+Date:   Tue Nov 20 12:57:47 2018 -0500
+
+    Release notes entry for LP#1793154
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2	0	docs/RELEASE_NOTES_3_2.adoc
+
+commit 8be497fa12f4c9da489b83039d522e540f66af4c
+Author: Jason Boyer <jboyer at 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 at library.in.gov>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
+
+commit 964295edc98019e688ef8033f4ed85a75b848cb1
+Author: Jane Sandberg <sandbej at 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 at 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 at linnbenton.edu>
+Date:   Tue Nov 20 08:27:35 2018 -0800
+
+    Docs: release notes for 3.2.2
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+78	0	docs/RELEASE_NOTES_3_2.adoc
+
+commit 8ab48e237db39e5b30f8714155c289baf040b08b
+Author: Jane Sandberg <sandbej at 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 at linnbenton.edu>
+
+74	0	docs/RELEASE_NOTES_3_1.adoc
+
+commit 095b59e2f3f9c5596c3156130267ac42794805ba
+Author: Ben Shum <ben at 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 at 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 at 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 at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <ben at 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 at 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 at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <ben at 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 at 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 at library.in.gov>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	0	Open-ILS/src/templates/staff/base_js.tt2
+
+commit 7a0e6b686091e86413e69a6ebfff2f61b68e7f2f
+Author: Garry Collum <gcollum at 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 at gmail.com>
+    Signed-off-by: Janet Schrader <jschrader at cwmars.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+8	2	Open-ILS/src/templates/staff/cat/z3950/t_marc_html.tt2
+
+commit 1dbf4109ffffe66aba07648fabf103432b932b40
+Author: Jason Stephenson <jason at 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 at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+39	39	Open-ILS/examples/fm_IDL.xml
+
+commit 46bd9e31258ea34a3c3e843ff9febf47a000fea5
+Author: Ben Shum <ben at evergreener.net>
+Date:   Sun Nov 18 22:06:21 2018 -0500
+
+    LP#1764542: Fixing upgrade script numbering
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+1	1	Open-ILS/src/sql/Pg/upgrade/1136.schema.lp1764542-mods33-update.sql
+
+commit e0c41ce17e4f51a2139ea4aad3e626f8b0b15a98
+Author: Ben Shum <ben at evergreener.net>
+Date:   Sun Nov 18 21:58:38 2018 -0500
+
+    LP#1764542: Stamping upgrade script
+    
+    Signed-off-by: Ben Shum <ben at 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 at 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 at georgialibraries.org>
+    Signed-off-by: Ben Shum <ben at 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 at 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 at gmail.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
+
+commit 6056f30ed1b7db00f7559bcc6ab3c83c2312fcdf
+Author: Mike Rylander <mrylander at 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 at gmail.com>
+    Signed-off-by: Rogan Hamby <rogan.hamby at gmail.com>
+    Signed-off-by: Ben Shum <ben at 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 at 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 at library.in.gov>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+    Signed-off-by: Cesar Velez <cesar.velez at equinoxinitiative.org>
+
+3	1	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+
+commit 72ff895e86ddc16dcd5df42578d477517169fa59
+Author: Jeanette Lundgren <jlundgren at cwmars.org>
+Date:   Wed Sep 12 15:52:21 2018 -0400
+
+    Docs: LP#1578719 Update DIG Attributions page
+    
+    Signed-off-by: Jeanette Lundgren <jlundgren at cwmars.org>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+17	14	docs/shared/attributions.adoc
+
+commit 43c75ec072ece2d150ffb3a8a211bfc946785ad3
+Author: Bill Erickson <berickxx at 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 at gmail.com>
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Galen Charlton <gmc at 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 at 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 at gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer at library.in.gov>
+    Signed-off-by: Galen Charlton <gmc at 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 at 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 at equinoxinitiative.org>
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 262a1d35df4293be14f7ea876ab04e491c338a14
+Author: Cesar Velez <cesar.velez at 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 at equinoxinitiative.org>
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+
+1	1	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit c6e420d2078ebe8b168dea4695892aefafd11976
+Author: Mike Rylander <mrylander at 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 at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at 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 at gmail.com>
+Date:   Mon Nov 12 12:26:40 2018 -0500
+
+    Stamping upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander at 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 at 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 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at 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 at 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 at calvin.edu>
+    Signed-off-by: Jason Boyer <JBoyer at library.in.gov>
+
+5	2	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 4eac9154f3fe122e15c4fddef729efd3924672d6
+Author: Bill Erickson <berickxx at 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 at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/NonCat.pm
+
+commit d96d5b6bcb279f60b4add125eb33eefa3417fffb
+Author: Bill Erickson <berickxx at 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 at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+3	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit b5357b0283c37ce12d161186f1092d138752e4f4
+Author: Mike Rylander <mrylander at 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 at 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 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at 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 at 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 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    
+    Conflicts:
+    	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at 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 at 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 at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+18	1	Open-ILS/src/perlmods/t/14-OpenILS-Utils.t
+
+commit 479361d70a31562cb045d14742c85b5440491067
+Author: Dan Wells <dbw2 at 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 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+48	17	Open-ILS/src/perlmods/lib/OpenILS/Utils/DateTime.pm
+
+commit f8473b18091b355cc9452ae7adeb5214fa997f7a
+Author: Kathy Lussier <klussier at 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 at masslnc.org>
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+3	1	Open-ILS/src/templates/opac/parts/result/table.tt2
+
+commit 9080603f72e10ef1d18f895fb31cfca77d0bbc89
+Author: Kathy Lussier <klussier at 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 at masslnc.org>
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	0	Open-ILS/src/templates/staff/share/t_help_popover.tt2
+
+commit c70a7a11f878983d02192239c74129ad25e44feb
+Author: Kathy Lussier <klussier at 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 at masslnc.org>
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+2	6	Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2
+
+commit cfb872e8432d4967ec3b03c7d31c32c98ed89522
+Author: Garry Collum <gcollum at 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 at gmail.com>
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+6	0	Open-ILS/src/templates/staff/css/style.css.tt2
+
+commit 14a6b09d55c975b3854cfd0720898e0308f39813
+Author: Galen Charlton <gmc at 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 at 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 at 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 at gmail.com>
+    Signed-off-by: Rogan Hamby <rhamby at equinoxinitiative.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+5	3	Open-ILS/web/js/ui/default/staff/services/lovefield.js
+
+commit 8f23343b76ebf8f556a5426b478c331698a3a2a6
+Author: Bill Erickson <berickxx at 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 at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at 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 at 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 at gmail.com>
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
+
+17	14	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 48266b6728fea1478dc710b6e8b9eb7922cf31cc
+Author: Galen Charlton <gmc at 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 at equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+10	0	Open-ILS/examples/apache_24/eg_vhost.conf.in
+
+commit 5fdaf3125f54b8855fbcace13b4e855bc5e10078
+Author: Galen Charlton <gmc at 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 at equinoxinitiative.org>
+    Signed-off-by: Bill Erickson <berickxx at 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 at linnbenton.edu>
+Date:   Sun Nov 4 15:25:44 2018 -0800
+
+    Docs: updating holding, item, call number terminology
+    
+    Signed-off-by: Jane Sandberg <sandbej at 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 at 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 at calvin.edu>
+
+2	1	docs/admin/marc_templates.adoc
+
+commit 71cf9a7def46ce3fa72e749d31fc62f5758d8df0
+Author: Jason Boyer <jboyer at 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 at library.in.gov>
+    Signed-off-by: Janet Schrader <jschrader at cwmars.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 899733acd11c22e96dcb821bd9d0f3ee8a02b691
+Author: abneiman <abneiman at equinoxinitiative.org>
+Date:   Thu Nov 1 13:59:02 2018 -0700
+
+    Docs: Emergency Closing Handler
+    
+    Signed-off-by: Jane Sandberg <sandbej at 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 at calvin.edu>
+Date:   Wed Oct 31 16:53:17 2018 -0400
+
+    Docs: Fix minor release notes formatting bug
+    
+    Signed-off-by: Remington Steed <rjs7 at calvin.edu>
+
+1	1	docs/RELEASE_NOTES_3_2.adoc
+
+commit ae2b807bc0f9e53aeb1a22fdf4bb5cf6ef57315e
+Author: Jason Stephenson <jason at 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 at sigio.com>
+
+21	0	docs/RELEASE_NOTES_3_0.adoc
+
+commit 604fe387d0fd176ebd94b3bc67185730b4486746
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Oct 24 18:14:28 2018 -0400
+
+    Forward-port 3.2.1 upgrade script
+    
+    Signed-off-by: Dan Wells <dbw2 at 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
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index d750216..8fadc56 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
@@ -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(
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index b50f39d..f96b940 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -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
index 0000000..15015d7
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/3.2.1-3.2.2-upgrade-db.sql
@@ -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;
diff --git a/Open-ILS/xul/staff_client/chrome/content/main/about.html b/Open-ILS/xul/staff_client/chrome/content/main/about.html
index b2b87b6..2a23517 100644
--- a/Open-ILS/xul/staff_client/chrome/content/main/about.html
+++ b/Open-ILS/xul/staff_client/chrome/content/main/about.html
@@ -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>
diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
index 0613a13..cea4d0cd 100644
--- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
+++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
@@ -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$");
diff --git a/Open-ILS/xul/staff_client/windowssetup.nsi b/Open-ILS/xul/staff_client/windowssetup.nsi
index a954357..ed4c4fe 100644
--- a/Open-ILS/xul/staff_client/windowssetup.nsi
+++ b/Open-ILS/xul/staff_client/windowssetup.nsi
@@ -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
index 1ee2103..0000000
--- 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
index 0000000..8b81d35
--- /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.
diff --git a/configure.ac b/configure.ac
index dacb5a3..54c5c7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,8 +20,8 @@
 
 export PATH=${PATH}:/usr/sbin
 AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev at list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 3.2.2, open-ils-dev at 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])

commit c48fd50647b9ce44757e23c47bc6fca6c5cc7bce
Author: Dan Wells <dbw2 at 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 at calvin.edu>

diff --git a/docs/installation/server_upgrade.adoc b/docs/installation/server_upgrade.adoc
index 1983804..5ef5d27 100644
--- a/docs/installation/server_upgrade.adoc
+++ b/docs/installation/server_upgrade.adoc
@@ -7,7 +7,7 @@ Software Prerequisites
 ~~~~~~~~~~~~~~~~~~~~~~
 
   * **PostgreSQL**: The minimum supported version is 9.4.
-  * **Linux**: Evergreen 2.12.0 has been tested on Debian Stretch (9.0),
+  * **Linux**: Evergreen 3.2.2 has been tested on Debian Stretch (9.0),
     Debian Jessie (8.0), 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
@@ -42,12 +42,12 @@ osrf_control --localhost --stop-all
  .. Back up the /openils directory.
 . Upgrade OpenSRF. Download and install the latest version of OpenSRF from
 the https://evergreen-ils.org/opensrf-downloads/[OpenSRF download page].
-. As the *opensrf* user, download and extract Evergreen 2.12.0:
+. As the *opensrf* user, download and extract Evergreen 3.2.2:
 +
 [source, bash]
 -----------------------------------------------
-wget https://evergreen-ils.org/downloads/Evergreen-ILS-2.12.0.tar.gz
-tar xzf Evergreen-ILS-2.12.0.tar.gz
+wget https://evergreen-ils.org/downloads/Evergreen-ILS-3.2.2.tar.gz
+tar xzf Evergreen-ILS-3.2.2.tar.gz
 -----------------------------------------------
 +
 [NOTE]
@@ -57,7 +57,7 @@ For the latest edition of Evergreen, check the https://evergreen-ils.org/egdownl
 +
 [source, bash]
 ---------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.12.0
+cd /home/opensrf/Evergreen-ILS-3.2.2
 ---------------------------------------------
 +
 On the next command, replace `[distribution]` with one of these values for your
@@ -81,7 +81,7 @@ make -f Open-ILS/src/extras/Makefile.install [distribution]
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.12.0
+cd /home/opensrf/Evergreen-ILS-3.2.2
 PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
 make
 ------------------------------------------------------------
@@ -92,7 +92,7 @@ These instructions assume that you have also installed OpenSRF under /openils/.
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.12.0
+cd /home/opensrf/Evergreen-ILS-3.2.2
 make install
 ------------------------------------------------------------
 +
@@ -103,8 +103,8 @@ can supply `STAFF_CLIENT_STAMP` during the `make install` step like this:
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.12.0
-make STAFF_CLIENT_STAMP_ID=rel_2_12_rc install
+cd /home/opensrf/Evergreen-ILS-3.2.2
+make STAFF_CLIENT_STAMP_ID=rel_3_2_2 install
 ------------------------------------------------------------
 +
 . As the *root* user, change all files to be owned by the opensrf user and group:
@@ -121,7 +121,7 @@ chown -R opensrf:opensrf /openils
 -----------------------------------------------------------
 cd /openils/var/web/xul/
 rm server
-ln -sf rel_2_12_rc/server server
+ln -sf rel_3_2_2/server server
 ----------------------------------------------------------
 +
 . As the *opensrf* user, update opensrf_core.xml and opensrf.xml by copying the
@@ -141,7 +141,7 @@ Copying these configuration files will remove any customizations you have made t
 +
 [source, bash]
 -------------------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.12.0
+cd /home/opensrf/Evergreen-ILS-3.2.2
 perl Open-ILS/src/support-scripts/eg_db_config --update-config --service all \
 --create-offline --database evergreen --host localhost --user evergreen --password evergreen
 -------------------------------------------------------------------------
@@ -165,21 +165,21 @@ The diff command can be used to show the differences between the distribution ve
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-2.12.0/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
+cp /home/opensrf/Evergreen-ILS-3.2.2/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
 ----------------------------------------------------------
 +
 .. Update /etc/apache2/eg_vhost.conf by copying the example from Open-ILS/examples/apache/eg_vhost.conf.
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-2.12.0/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
+cp /home/opensrf/Evergreen-ILS-3.2.2/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
 ----------------------------------------------------------
 +
 .. Update /etc/apache2/sites-available/eg.conf by copying the example from Open-ILS/examples/apache/eg.conf.
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-2.12.0/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
+cp /home/opensrf/Evergreen-ILS-3.2.2/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
 ----------------------------------------------------------
 
 Upgrade the Evergreen database schema
@@ -278,8 +278,8 @@ as a user with the ability to connect to the database server.
 
 [source, bash]
 ----------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.12.0/Open-ILS/src/sql/Pg
-psql -U evergreen -h localhost -f version-upgrade/2.11.3-2.12.0-upgrade-db.sql evergreen
+cd /home/opensrf/Evergreen-ILS-3.2.2/Open-ILS/src/sql/Pg
+psql -U evergreen -h localhost -f version-upgrade/3.2.1-3.2.2-upgrade-db.sql evergreen
 ----------------------------------------------------------
 
 [TIP]

commit 99bad0f721f2d09fad4ff22960a5987ec360d20c
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Mon Feb 24 12:09:57 2014 -0500

    Bump OpenILS.pm version
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS.pm b/Open-ILS/src/perlmods/lib/OpenILS.pm
index d7235ce..2e0da26 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS.pm
@@ -6,6 +6,6 @@ OpenILS - Client and server support for the Evergreen open source library system
 
 =cut
 
-our $VERSION = '2.4';
+our $VERSION = '3.0202';
 
 1;

-----------------------------------------------------------------------


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list