From: Chris Sharp Date: Wed, 25 Jul 2018 21:23:51 +0000 (-0400) Subject: Bumping version numbers, adding Upgrade Script and Changelog X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=876b955eadfbd4131751325eed6eef90b56857bf;p=working%2FEvergreen.git Bumping version numbers, adding Upgrade Script and Changelog Signed-off-by: Chris Sharp --- diff --git a/ChangeLog b/ChangeLog index 1f72b2c73e..883b75c0d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,680 @@ -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 9480841f4b9a163ac8fba6f6cd5592f1b29b89a8 +Author: Chris Sharp +Date: Wed Jul 25 17:23:47 2018 -0400 + + Updating upgrade docs for 3.0.10. + + Signed-off-by: Chris Sharp + +16 32 docs/installation/server_upgrade.adoc + +commit c13e6a2dc337228a92971e9875dfab68c12f4b1b +Author: Chris Sharp +Date: Wed Jul 25 17:23:31 2018 -0400 + + Bumping Perl version string for 3.0.10 + + Signed-off-by: Chris Sharp + +1 1 Open-ILS/src/perlmods/lib/OpenILS.pm + +commit e790b1bc5aa4aaf07d1ed290b91af57babf3996f +Author: Jane Sandberg +Date: Wed Jul 25 12:13:32 2018 -0700 + + Docs: adding to 3.0.10 release notes + + Signed-off-by: Jane Sandberg + +1 0 docs/RELEASE_NOTES_3_0.adoc + +commit ddacdb459ecd19cadb5ad4edc0d1d6a0ced8402a +Author: Jane Sandberg +Date: Wed Jul 25 12:08:06 2018 -0700 + + Docs: Adding 3.0.10 release notes + + Signed-off-by: Jane Sandberg + +61 0 docs/RELEASE_NOTES_3_0.adoc + +commit 6fe600c50f0c15431e08600b1014f76e2d45c9a4 +Author: Dan Wells +Date: Wed Jul 25 15:00:48 2018 -0400 + + Translation updates - po files + + Signed-off-by: Dan Wells + +23 20 build/i18n/po/webstaff/ar-JO.po +23 20 build/i18n/po/webstaff/cs-CZ.po +20 20 build/i18n/po/webstaff/en-GB.po +116 100 build/i18n/po/webstaff/es-ES.po +20 20 build/i18n/po/webstaff/hy-AM.po +20 20 build/i18n/po/webstaff/ru-RU.po + +commit 613b4c0f2e755e9bf713316bdc6acd16a3845f06 +Author: Dan Wells +Date: Wed Jul 25 14:59:07 2018 -0400 + + Translation updates - newpot + + Signed-off-by: Dan Wells + +32 14 build/i18n/po/webstaff/webstaff.pot + +commit 17dc274ceb06747f018476a8b00681f630faa802 +Author: Dan Wells +Date: Fri Jul 6 11:47:42 2018 -0400 + + LP#1414197 Serial Item Delete Improvements + + If a serial item is received, then deleted without any further status, + it can leave the system in an inconsistent state: + + 1) If from a multi-item unit, the unit contents are not updated. + 2) If from a single-item unit, the unit is not deleted. + 3) If the last holding of its kind, holdings summaries are not updated. + + Since 'resetting' items has all the necessary logic to handle the above + needs, this commit runs each deleted item through the reset code before + doing the actual delete. This also gives the benefit of keeping the + logic centralized for future fixes/enhancements. + + Signed-off-by: Dan Wells + Signed-off-by: Kathy Lussier + +23 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Serial.pm +1 3 Open-ILS/web/js/ui/default/staff/serials/directives/view-items-grid.js + +commit 0104ba716052bb8e84e98899afad2c0c8c7979f6 +Author: Kathy Lussier +Date: Fri Jul 6 09:50:40 2018 -0400 + + LP#1738249: Fix Circulation Library in Item Status Column Picker + + When the original branch was merged, the change to fix the display of + the Circulation Library to the copy's circ_lib in Item Status was + lost. This commit restores it and uses the original patch author's + name on the commit. + + Signed-off-by: Jason Stephenson + +1 1 Open-ILS/src/templates/staff/cat/item/t_list.tt2 + +commit 45db93c94e2b6c389f47b9e51d347c3af55db759 +Author: Cesar Velez +Date: Thu Jul 12 16:28:45 2018 -0400 + + LP#1781473 - fix cosmetic issue with circ Id column + + The column for Circ.Id on the Patron Checkout grid was + mislabeled "Bill#" + + Signed-off by: Cesar Velez + + Signed-off-by: Kathy Lussier + +1 1 Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2 + +commit fc571075295646b3007d02fa792cee259d4b538b +Author: Adam Bowling +Date: Sat Jun 23 01:06:13 2018 -0400 + + LP#1778268: Fix incorrect close tag for label on line 58 of + Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2 + + Signed-off-by: Adam Bowling + Signed-off-by: Kathy Lussier + +1 1 Open-ILS/src/templates/staff/cat/printlabels/t_view.tt2 + +commit 6b014fa4b8d37b44c555b59fc0aabede2625f2b6 +Author: Dan Wells +Date: Fri Jul 13 14:04:00 2018 -0400 + + LP#1777954 Open Electronic Resource Links in New Tab, Part 2 + + For the same reasons given in the previous commit, let's also open + resource links in a new tab/window when clicking from the results + list. + + Signed-off-by: Dan Wells + Signed-off-by: Kathy Lussier + +1 1 Open-ILS/src/templates/opac/parts/result/table.tt2 + +commit 744163d6f7c1348350c206f79522c7f0746a6695 +Author: Terran McCanna +Date: Mon Jun 25 12:15:21 2018 -0400 + + LP#1777954 Open Electronic Resource Links in New Tab + + Open electronic resources links in new browser tab to accommodate + for external non-https links that will not otherwise open from the + web client. + + Signed-off-by: Terran McCanna + Signed-off-by: Dan Wells + Signed-off-by: Kathy Lussier + +2 2 Open-ILS/src/templates/opac/parts/record/summary.tt2 + +commit 9a9db135db10c88e65a4410927b0ac9332137eeb +Author: Chris Sharp +Date: Tue Jul 24 13:19:07 2018 -0400 + + LP#1739286: Revert "lp1739286 default search box in Z39.50" + + This commit caused unexpected side effects, reported in bug 1782401 + ( https://bugs.launchpad.net/evergreen/+bug/1782401 ). Reverting before + it ends up in a release. + + This reverts commit 6996a3630dea3d6fd967c127417a800aba561603. + + Signed-off-by: Chris Sharp + +5 15 Open-ILS/src/templates/staff/cat/z3950/t_search_fields.tt2 +0 19 Open-ILS/web/js/ui/default/staff/cat/services/z3950.js + +commit ade3396686f255ba86d10b5bf1639a17e100a90b +Author: Mike Rylander +Date: Thu Jul 12 11:03:44 2018 -0400 + + LP#1710401: Z39.50 should notice overlay target change + + Currently, we record the overlay target at UI startup and use that going + forward until the interface is reloaded. This commit inspects the local + storage version of the target for changes and offers the user the chance to + proceed with the new target or cancel the action. If the target has been + unset, the user is given the option of proceeding with the load-time target. + + Signed-off-by: Mike Rylander + Signed-off-by: Chris Sharp + +4 0 Open-ILS/src/templates/staff/cat/share/z3950_strings.tt2 +58 21 Open-ILS/web/js/ui/default/staff/cat/z3950/app.js + +commit 6647fa37102cfedfb3b22aa65594f9f78770a08a +Author: Mike Rylander +Date: Thu Jul 12 09:28:07 2018 -0400 + + Stamping upgrade script + + Signed-off-by: Mike Rylander + +1 1 Open-ILS/src/sql/Pg/002.schema.config.sql +211 0 Open-ILS/src/sql/Pg/upgrade/1113.function.acq.rollover-by-org-tree.sql +0 211 Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql + create mode 100644 Open-ILS/src/sql/Pg/upgrade/1113.function.acq.rollover-by-org-tree.sql + delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql + +commit 858e6fa4d2b5d80e9328b01e259bd2431fe9025a +Author: Jason Stephenson +Date: Wed Jun 6 14:59:41 2018 -0400 + + LP 1478712: Fix acq.fund_rollover_funds_by_org_tree DB function. + + When looking for new funds, we need to also use the org unit from the + old fund because different org units may use the same fund code. What + happens without this check is the second library to rollover ends up + assigning their rolled over debits to the first library that rolled + over or propagated funds with the same code. + + Unfortunately, I do not know of a good way to test this branch with + the concerto data. I will elaborate how I tested with a copy of our + production data in a test database below. + + What I did to test with our production data was first to repair the + debits that had been moved to the wrong library's funds from the + previous year. I then ran the acq.rollover_funds_by_org_tree function + for two libraries that share acq fund codes. I verified that the fund + debits for the second library did indeed get assigned to funds with + the same code that were rolled over for the first library. The debits + ended up on the newly propagated funds of the library that went first. + + I reloaded the database, replaced the acq.rollover_funds_by_org_tree + function with the implementation from this branch, and repeated the + above steps. The second library's debits rolled over to new funds + owned by that library as was expected. + + This would be a good candidate for a pgtap test with additional data + added to concerto if anyone is feeling ambitious. + + Signed-off-by: Jason Stephenson + Signed-off-by: Jennifer Pringle + Signed-off-by: Chris Sharp + +1 1 Open-ILS/src/sql/Pg/200.schema.acq.sql +211 0 Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql + create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.acq.rollover-by-org-tree.sql + +commit bb594ad94f9292399595fa698e703d97e0a0197d +Author: Dan Wells +Date: Mon Apr 30 11:05:11 2018 -0400 + + LP#1749795 Close circ on adjustment when rebilled + + When doing a re-bill, we were aborting too early when it rebilled to + exactly zero. Move the 'zero' check to the top of the loop, and + thereby make sure we check if the xact can be closed if we do any + adjustment, up or down. + + To test: + - Run new billing test from previous commit, see it fail + - Apply patch + - Run tests again; all should pass + + Signed-off-by: Dan Wells + Signed-off-by: Jeff Davis + Signed-off-by: Chris Sharp + +18 15 Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Money.pm + +commit 5fed92e899c457f5cdb0f0a2241c9d9d6b688cb3 +Author: Bill Erickson +Date: Tue Jun 19 14:23:42 2018 -0400 + + LP#1751368 Items-out checkin of deleted copies + + Allow deleted copies to be checked in from the patron items out list. + Checkin is based on copy ID instead of barcode. Note that both values + are sent to the server, to reduce the number of changes in the UI code, + but the API inspects the ID first. + + Signed-off-by: Bill Erickson + Signed-off-by: Jeff Davis + Signed-off-by: Chris Sharp + +9 4 Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js + +commit ecaca5004596039b4b8893589f234899afd4f469 +Author: a. bellenir +Date: Tue Jun 19 18:25:05 2018 -0400 + + LP#1669856 and LP#1776557: right clicks on egGrid + + select the row if right-clicking on a row that is not selected. + use the defult browser context-menu when right-clicking on links in eg grids. + + Signed-off-by: a. bellenir + Signed-off-by: Michele Morgan + Signed-off-by: Chris Sharp + +17 2 Open-ILS/web/js/ui/default/staff/services/grid.js + +commit 1cb1eb6cc636b4108f23895faa9dba5b4d010955 +Author: Garry Collum +Date: Fri May 25 16:31:21 2018 -0400 + + LP#1730003 Courier code doesn't display in transit slip receipt preview + + Adds seed data for the transit and hold-transit slip preview in the print template editor. + + To test add {{dest_courier_code}} as a variable in either the transit slip or hold transit slip template. + + Signed-off-by: Garry Collum + Signed-off-by: Terran McCanna + Signed-off-by: Chris Sharp + +1 0 Open-ILS/web/js/ui/default/staff/admin/workstation/app.js + +commit f6bdeb165f7fe06df77abb3e6207cf73d29dc799 +Author: Mike Rylander +Date: Fri Jun 1 13:50:21 2018 -0400 + + LP#1736269: Mark Missing Pieces is non-functional + + In the work to separate the item service into a reusable component, a + reference to $scope was left hanging around. This causes the service to die + before it can complete its work. The code using $scope does seem to be + necessary, so we'll have the function accept an outer_scope parameter and + adjust the call sites. + + Signed-off-by: Mike Rylander + Signed-off-by: Cesar Velez + Signed-off-by: Chris Sharp + +2 2 Open-ILS/web/js/ui/default/staff/cat/item/missing_pieces.js +1 1 Open-ILS/web/js/ui/default/staff/circ/checkin/app.js +2 2 Open-ILS/web/js/ui/default/staff/circ/services/item.js + +commit 34995670769210df9b54a03212ce496dae709e19 +Author: Galen Charlton +Date: Thu Jan 25 14:57:40 2018 -0500 + + LP#1745462: avoid trying to validate empty fields + + This patch is the belt to the previous patch's suspenders and ensures + that the web staff client does not attempt to authority-validate headings + fields in the MARC editor if they're empty (i.e., no subfield values). + + To test + ------- + [1] In the web staff client, create a new bib. Ensure that at least one of the + authority-controlled fields has no subfield values. + [2] Hit the Validate button. + [3] Note that the field(s) with empty headings show the tick + mark indicating that they've been "validated". + [4] Apply the patch and repeat steps 1 and 2. This time, empty headings + field should not be checked. + [5] Verify that validating headings that are not empty does continue + to work. + + Patch inspired by Mike Rylander. + + Signed-off-by: Galen Charlton + Signed-off-by: Chris Sharp + +1 0 Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js +8 2 Open-ILS/web/js/ui/default/staff/cat/services/tagtable.js + +commit 97422ed57cdab35625e4274ebfb305180c06736c +Author: Galen Charlton +Date: Thu Jan 25 14:40:47 2018 -0500 + + LP#1745462: guard against scanning entire authority table + + This patch ensures that if, for whatever reason, a MARC editor headings + validation action includes a field whose subfield values are empty, it + ignores any cases where the normalized heading works out to NULL or the + empty string. Otherwise, the database can be asked to fetch the IDs + of most/all records in the database, and open-ils.cstore backend can be + asked to store the entire result set in memory. + + To test + ------- + [0] Ensure that statement logging is turned on in the PostgreSQL database. + [1] In the web staff client, create a new bib. Ensure that at least one of the + authority-controlled fields has no subfield values. + [2] Hit the Validate button. + [3] Note that the following query is logged by the database: + + SELECT "are".id AS "id" FROM authority.record_entry AS "are" + WHERE "are".control_set = '1' + AND "are".deleted = 'f' AND "are".simple_heading IS NOT NULL; + + [4] Apply the patch and repeat steps 1 and 2. This time, note that + no such query is recorded. + [5] Verify that validating headings that are not empty does continue + to work. + + Signed-off-by: Galen Charlton + Signed-off-by: Chris Sharp + +4 0 Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Authority.pm + +commit 0a9e00ed0ada77c89b4b0a10600a49e1989ccf10 +Author: Bill Erickson +Date: Wed May 23 11:54:34 2018 -0400 + + LP#1537228 Precat subsequent checkin shows route alert + + Display the 'route to cataloging' alert every time a precat copy is + checked in, consistent with the XUL client, instead of displaying + it only with the first checkin. + + As with the first checkin, if the alert is configured not to display, + it will not show. + + Signed-off-by: Bill Erickson + Signed-off-by: Jane Sandberg + Signed-off-by: Chris Sharp + +6 1 Open-ILS/web/js/ui/default/staff/circ/services/circ.js + +commit 26b4105f4c688bceefa9eb595503ec89547aade1 +Author: Galen Charlton +Date: Mon Jan 22 18:01:00 2018 -0500 + + LP#1745207: tie together copy_tag() and site() search filters + + The copy_tag() filter will now restrict itself to records that + have copies that both have matching copy tags and a circ_lib + within the site() scope. + + To test + ------- + [1] Define two digital bookplate copy tags at two difference org units, e.g., + "BR1 Smith" at BR1 and "BR4 Smith" at "BR4". + [2] Arrange that a record has items in both BR1 and BR4, and assign the "BR4 Smith" + copy tag to one of the BR4 items. + [3] On a separate record, set up a similar situation, but use BR1 instead. + [4] Enable the digital bookplate search option and do a bookplate search + for "Smith" with the scope limited to BR1. + [5] Note that both of the records set up in #2 and #3 are included in the results + set. + [6] Apply the patch and repeat step 5. This time, only the record set up in #3 + should be included. + + Signed-off-by: Galen Charlton + Signed-off-by: Garry Collum + Signed-off-by: Chris Sharp + +1 0 Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm + +commit 4fdd7e0fe6b4d79f8b18256c483dccc6a06c1f49 +Author: Cesar Velez +Date: Thu Jan 11 14:12:55 2018 -0500 + + LP1742782 - fix display of cbox label in list of removable fields + + The checkbox input element was being displayed in the middle + of the label text. + + Signed-off-by: Cesar Velez + Signed-off-by: Mike Rylander + +6 6 Open-ILS/src/templates/staff/cat/z3950/t_list.tt2 + +commit 1f57c68b7dafb2c0d88ed2573b5499563b67818c +Author: Jeff Davis +Date: Tue Mar 6 10:46:49 2018 -0800 + + LP#1738499: barcode completion for copy buckets + + Signed-off-by: Jeff Davis + Signed-off-by: Chris Sharp + +82 13 Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js + +commit 567b33f0d6410202be1bdf00d1999f88e8429843 +Author: Michele Morgan +Date: Thu Sep 14 11:48:31 2017 -0400 + + LP#1692116 - Action trigger validator fix for paid Long Overdue items + + Adds a check for a NULL xact_finish to the CircIsOpen validator. The + result is that overdue notification a/t events for Long Overdue items that + have been paid for, and the transaction closed, will be invalid. + + Signed-off-by: Michele Morgan + Signed-off-by: Chris Sharp + +1 0 Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Validator.pm + +commit d20caafb029b6634d8426a12cf9b004151fc4191 +Author: Jason Etheridge +Date: Tue Jul 10 19:46:04 2018 -0400 + + lp1739286 default search box in Z39.50 + + This change tweaks the layout of search fields in the web client Z39.50 + interface and adds radio buttons for the default search field to auto-focus. + The behavior is "sticky" without the need for an explicit Save action. If the + current default field is not present due to a given combination of selected + services, then no field will be focused by default. + + Signed-off-by: Jason Etheridge + Signed-off-by: Chris Sharp + +15 5 Open-ILS/src/templates/staff/cat/z3950/t_search_fields.tt2 +19 0 Open-ILS/web/js/ui/default/staff/cat/services/z3950.js + +commit c7f84cea8607298dd254dc99d22dc031cc468ccd +Author: Jason Boyer +Date: Mon Jul 9 12:47:10 2018 -0400 + + LP1736243: SMS Carrier Editing in Patron Editor + + The XUL Client treats many user setting entries as + quoted strings. Angular needs some help to recognize + that it needs to convert these incoming "strings" + to ints for use as the data model when editing. The + str-to-int directive gives it this hint. + + Signed-off-by: Jason Boyer + Signed-off-by: Chris Sharp + +1 1 Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 + +commit 9334ba6042635aafb088cfc3940eb4636e228212 +Author: Jason Stephenson +Date: Thu May 24 09:34:17 2018 -0400 + + LP 1772993: Ability to blank Age Hold Protection in Vol/Copy Editor. + + Add the option to the age-based hold protection field in the + web staff client Vol/Copy Editor. + + To test: + + 1. Add a value for age-based hold protection to a copy. + + 2. Attempt to remove the value in the copy editor. Note that the + dropdown does not allow you to do so. + + 3. Apply this commit. + + 4. Repeat step 2. Now there is a option that removes the value + from the copy. + + Signed-off-by: Jason Stephenson + Signed-off-by: Jeff Davis + +3 2 Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2 + +commit 3bc7e09540fab979134084f301021afe923cbaf1 +Author: Dan Wells +Date: Fri Jun 29 12:41:26 2018 -0400 + + Forward port 3.0.9 upgrade script + + Signed-off-by: Dan Wells + +15 0 Open-ILS/src/sql/Pg/version-upgrade/3.0.8-3.0.9-upgrade-db.sql + create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.0.8-3.0.9-upgrade-db.sql + +commit 3e916d092a61b45bee1e2cc894a9898cc4e6d037 +Author: Dan Wells +Date: Fri Jun 29 12:34:07 2018 -0400 + + Translation updates - po files + + Signed-off-by: Dan Wells + +4 4 build/i18n/po/cat.properties/ar-JO.po +5 5 build/i18n/po/cat.properties/cs-CZ.po +3 3 build/i18n/po/cat.properties/de-DE.po +3 3 build/i18n/po/cat.properties/en-CA.po +7 5 build/i18n/po/cat.properties/en-GB.po +3 3 build/i18n/po/cat.properties/es-ES.po +3 3 build/i18n/po/cat.properties/fi-FI.po +3 3 build/i18n/po/cat.properties/fr-CA.po +3 3 build/i18n/po/cat.properties/he-IL.po +3 3 build/i18n/po/cat.properties/hu-HU.po +3 3 build/i18n/po/cat.properties/hy-AM.po +3 3 build/i18n/po/cat.properties/oc-FR.po +3 3 build/i18n/po/cat.properties/pt-BR.po +3 3 build/i18n/po/cat.properties/ru-RU.po +3 3 build/i18n/po/cat.properties/sv-SE.po +3 3 build/i18n/po/cat.properties/tr-TR.po +3 3 build/i18n/po/common.properties/ar-JO.po +3 3 build/i18n/po/common.properties/cs-CZ.po +3 3 build/i18n/po/common.properties/de-DE.po +3 3 build/i18n/po/common.properties/en-CA.po +5 5 build/i18n/po/common.properties/en-GB.po +3 3 build/i18n/po/common.properties/es-ES.po +3 3 build/i18n/po/common.properties/fi-FI.po +3 3 build/i18n/po/common.properties/fr-CA.po +3 3 build/i18n/po/common.properties/he-IL.po +3 3 build/i18n/po/common.properties/hu-HU.po +3 3 build/i18n/po/common.properties/hy-AM.po +3 3 build/i18n/po/common.properties/oc-FR.po +3 3 build/i18n/po/common.properties/pt-BR.po +3 3 build/i18n/po/common.properties/ru-RU.po +3 3 build/i18n/po/common.properties/sv-SE.po +3 3 build/i18n/po/common.properties/tr-TR.po +8 8 build/i18n/po/conify/ar-JO.po +20 20 build/i18n/po/conify/cs-CZ.po +7 7 build/i18n/po/conify/es-ES.po +7 7 build/i18n/po/conify/hy-AM.po +2715 2692 build/i18n/po/db.seed/ar-JO.po +2687 2681 build/i18n/po/db.seed/cs-CZ.po +2653 2649 build/i18n/po/db.seed/de-DE.po +2653 2649 build/i18n/po/db.seed/en-CA.po +2653 2649 build/i18n/po/db.seed/en-GB.po +2653 2649 build/i18n/po/db.seed/es-ES.po +2653 2649 build/i18n/po/db.seed/fi-FI.po +2653 2649 build/i18n/po/db.seed/fr-CA.po +2653 2649 build/i18n/po/db.seed/he-IL.po +2653 2649 build/i18n/po/db.seed/hu-HU.po +2653 2649 build/i18n/po/db.seed/hy-AM.po +2653 2649 build/i18n/po/db.seed/oc-FR.po +2653 2649 build/i18n/po/db.seed/pt-BR.po +2653 2649 build/i18n/po/db.seed/ru-RU.po +2653 2649 build/i18n/po/db.seed/sv-SE.po +2653 2649 build/i18n/po/db.seed/tr-TR.po +38 27 build/i18n/po/lang.dtd/ar-JO.po +119 75 build/i18n/po/lang.dtd/cs-CZ.po +26 25 build/i18n/po/lang.dtd/de-DE.po +38 26 build/i18n/po/lang.dtd/en-CA.po +38 26 build/i18n/po/lang.dtd/en-GB.po +39 25 build/i18n/po/lang.dtd/es-ES.po +39 25 build/i18n/po/lang.dtd/fi-FI.po +26 25 build/i18n/po/lang.dtd/fr-CA.po +26 25 build/i18n/po/lang.dtd/he-IL.po +26 25 build/i18n/po/lang.dtd/hu-HU.po +90 48 build/i18n/po/lang.dtd/hy-AM.po +26 25 build/i18n/po/lang.dtd/oc-FR.po +26 25 build/i18n/po/lang.dtd/pt-BR.po +26 25 build/i18n/po/lang.dtd/ru-RU.po +26 25 build/i18n/po/lang.dtd/sv-SE.po +26 25 build/i18n/po/lang.dtd/tr-TR.po +138 136 build/i18n/po/tpac/ar-JO.po +81 81 build/i18n/po/tpac/cs-CZ.po +71 71 build/i18n/po/tpac/de-DE.po +71 71 build/i18n/po/tpac/en-CA.po +893 824 build/i18n/po/tpac/en-GB.po +71 71 build/i18n/po/tpac/es-ES.po +71 71 build/i18n/po/tpac/fi-FI.po +71 71 build/i18n/po/tpac/fr-CA.po +71 71 build/i18n/po/tpac/he-IL.po +71 71 build/i18n/po/tpac/hu-HU.po +71 71 build/i18n/po/tpac/hy-AM.po +71 71 build/i18n/po/tpac/oc-FR.po +71 71 build/i18n/po/tpac/pt-BR.po +71 71 build/i18n/po/tpac/ru-RU.po +71 71 build/i18n/po/tpac/sv-SE.po +71 71 build/i18n/po/tpac/tr-TR.po +7 7 build/i18n/po/vandelay/ar-JO.po +12 12 build/i18n/po/vandelay/cs-CZ.po +5 5 build/i18n/po/vandelay/de-DE.po +5 5 build/i18n/po/vandelay/es-ES.po +5 5 build/i18n/po/vandelay/hy-AM.po +456 361 build/i18n/po/webstaff/ar-JO.po +467 372 build/i18n/po/webstaff/cs-CZ.po +445 356 build/i18n/po/webstaff/en-GB.po +522 433 build/i18n/po/webstaff/es-ES.po +448 356 build/i18n/po/webstaff/hy-AM.po +445 356 build/i18n/po/webstaff/ru-RU.po + +commit 813ff377f4d60376877dc63099049409a9f46ebe +Author: Dan Wells +Date: Fri Jun 29 12:29:47 2018 -0400 + + Translation updates - newpot + + Signed-off-by: Dan Wells + +17 17 build/i18n/po/webstaff/webstaff.pot diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm index d750216454..532bcf0202 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-0-10"; } __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 335a3125d4..0ca1732641 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 ('1113', :eg_version); -- Dyrcona/csharp/miker +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.0.10', :eg_version); CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.0.9-3.0.10-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.0.9-3.0.10-upgrade-db.sql new file mode 100644 index 0000000000..f04b6cbc1a --- /dev/null +++ b/Open-ILS/src/sql/Pg/version-upgrade/3.0.9-3.0.10-upgrade-db.sql @@ -0,0 +1,214 @@ +--Upgrade Script for 3.0.9 to 3.0.10 +\set eg_version '''3.0.10''' +BEGIN; +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.0.10', :eg_version); + +SELECT evergreen.upgrade_deps_block_check('1113', :eg_version); + +CREATE OR REPLACE FUNCTION acq.rollover_funds_by_org_tree( + old_year INTEGER, + user_id INTEGER, + org_unit_id INTEGER, + encumb_only BOOL DEFAULT FALSE, + include_desc BOOL DEFAULT TRUE +) RETURNS VOID AS $$ +DECLARE +-- +new_fund INT; +new_year INT := old_year + 1; +org_found BOOL; +perm_ous BOOL; +xfer_amount NUMERIC := 0; +roll_fund RECORD; +deb RECORD; +detail RECORD; +roll_distrib_forms BOOL; +-- +BEGIN + -- + -- Sanity checks + -- + IF old_year IS NULL THEN + RAISE EXCEPTION 'Input year argument is NULL'; + ELSIF old_year NOT BETWEEN 2008 and 2200 THEN + RAISE EXCEPTION 'Input year is out of range'; + END IF; + -- + IF user_id IS NULL THEN + RAISE EXCEPTION 'Input user id argument is NULL'; + END IF; + -- + IF org_unit_id IS NULL THEN + RAISE EXCEPTION 'Org unit id argument is NULL'; + ELSE + -- + -- Validate the org unit + -- + SELECT TRUE + INTO org_found + FROM actor.org_unit + WHERE id = org_unit_id; + -- + IF org_found IS NULL THEN + RAISE EXCEPTION 'Org unit id % is invalid', org_unit_id; + ELSIF encumb_only THEN + SELECT INTO perm_ous value::BOOL FROM + actor.org_unit_ancestor_setting( + 'acq.fund.allow_rollover_without_money', org_unit_id + ); + IF NOT FOUND OR NOT perm_ous THEN + RAISE EXCEPTION 'Encumbrance-only rollover not permitted at org %', org_unit_id; + END IF; + END IF; + END IF; + -- + -- Loop over the propagable funds to identify the details + -- from the old fund plus the id of the new one, if it exists. + -- + FOR roll_fund in + SELECT + oldf.id AS old_fund, + oldf.org, + oldf.name, + oldf.currency_type, + oldf.code, + oldf.rollover, + newf.id AS new_fund_id + FROM + acq.fund AS oldf + LEFT JOIN acq.fund AS newf + ON ( oldf.code = newf.code AND oldf.org = newf.org ) + WHERE + oldf.year = old_year + AND oldf.propagate + AND newf.year = new_year + AND ( ( include_desc AND oldf.org IN ( SELECT id FROM actor.org_unit_descendants( org_unit_id ) ) ) + OR (NOT include_desc AND oldf.org = org_unit_id ) ) + LOOP + --RAISE NOTICE 'Processing fund %', roll_fund.old_fund; + -- + IF roll_fund.new_fund_id IS NULL THEN + -- + -- The old fund hasn't been propagated yet. Propagate it now. + -- + INSERT INTO acq.fund ( + org, + name, + year, + currency_type, + code, + rollover, + propagate, + balance_warning_percent, + balance_stop_percent + ) VALUES ( + roll_fund.org, + roll_fund.name, + new_year, + roll_fund.currency_type, + roll_fund.code, + true, + true, + roll_fund.balance_warning_percent, + roll_fund.balance_stop_percent + ) + RETURNING id INTO new_fund; + + PERFORM acq.copy_fund_tags(roll_fund.id,new_fund); + + ELSE + new_fund = roll_fund.new_fund_id; + END IF; + -- + -- Determine the amount to transfer + -- + SELECT amount + INTO xfer_amount + FROM acq.fund_spent_balance + WHERE fund = roll_fund.old_fund; + -- + IF xfer_amount <> 0 THEN + IF NOT encumb_only AND roll_fund.rollover THEN + -- + -- Transfer balance from old fund to new + -- + --RAISE NOTICE 'Transferring % from fund % to %', xfer_amount, roll_fund.old_fund, new_fund; + -- + PERFORM acq.transfer_fund( + roll_fund.old_fund, + xfer_amount, + new_fund, + xfer_amount, + user_id, + 'Rollover' + ); + ELSE + -- + -- Transfer balance from old fund to the void + -- + -- RAISE NOTICE 'Transferring % from fund % to the void', xfer_amount, roll_fund.old_fund; + -- + PERFORM acq.transfer_fund( + roll_fund.old_fund, + xfer_amount, + NULL, + NULL, + user_id, + 'Rollover into the void' + ); + END IF; + END IF; + -- + IF roll_fund.rollover THEN + -- + -- Move any lineitems from the old fund to the new one + -- where the associated debit is an encumbrance. + -- + -- Any other tables tying expenditure details to funds should + -- receive similar treatment. At this writing there are none. + -- + UPDATE acq.lineitem_detail + SET fund = new_fund + WHERE + fund = roll_fund.old_fund -- this condition may be redundant + AND fund_debit in + ( + SELECT id + FROM acq.fund_debit + WHERE + fund = roll_fund.old_fund + AND encumbrance + ); + -- + -- Move encumbrance debits from the old fund to the new fund + -- + UPDATE acq.fund_debit + SET fund = new_fund + wHERE + fund = roll_fund.old_fund + AND encumbrance; + END IF; + + -- Rollover distribution formulae funds + SELECT INTO roll_distrib_forms value::BOOL FROM + actor.org_unit_ancestor_setting( + 'acq.fund.rollover_distrib_forms', org_unit_id + ); + + IF roll_distrib_forms THEN + UPDATE acq.distribution_formula_entry + SET fund = roll_fund.new_fund_id + WHERE fund = roll_fund.old_fund; + END IF; + + -- + -- Mark old fund as inactive, now that we've closed it + -- + UPDATE acq.fund + SET active = FALSE + WHERE id = roll_fund.old_fund; + END LOOP; +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 b2b87b683f..358e1b6ec7 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 @@

Evergreen

Target Server ID:

-

$HeadURL$

+

http://git.evergreen-ils.org/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_3_0_10

What is Evergreen?

diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js index 0613a13ddf..c3dd76aa19 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_0_10"); 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 a9543579a8..93eb47ab3b 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.0" !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 1ee2103e6f..0000000000 --- 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 0000000000..0cbc3fad47 --- /dev/null +++ b/README @@ -0,0 +1,692 @@ +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), Debian Wheezy (7), 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. ++ + * Debian (Wheezy) and Ubuntu (Trusty) comes with older versions 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`, `debian-wheezy`, + `ubuntu-xenial`, or `ubuntu-trusty` for below: ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install +------------------------------------------------------------------------------ ++ +4. Add the libdbi-libdbd libraries to the system dynamic library path by + issuing the following commands as the *root* Linux account: ++ +[NOTE] +You should skip this step if installing on Ubuntu Trusty/Xenial or Debian Jessie/Stretch. The Ubuntu +and Debian Jessie/Stretch targets use libdbd-pgsql from packages. ++ +.Debian Wheezy +[source, bash] +------------------------------------------------------------------------------ +echo "/usr/local/lib/dbd" > /etc/ld.so.conf.d/eg.conf +ldconfig +------------------------------------------------------------------------------ + +[[optional_developer_additions]] +5. 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 -developer Makefile.install target. Currently, + this is only needed for building and installing the (preview) browser + staff client. ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install -developer +------------------------------------------------------------------------------ ++ + * To install packages required for building Evergreen translations, use + the -translator Makefile.install target. ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install -translator +------------------------------------------------------------------------------ ++ + * To install packages required for building Evergreen release bundles, use + the -packager Makefile.install target. ++ +[source, bash] +------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install -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 +<>. You will still need to do the following +steps in <>. + +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`. ++ +2. Install Grunt CLI ++ +[source,sh] +------------------------------------------------------------------------------ +% sudo npm install -g grunt-cli +------------------------------------------------------------------------------ + +[[install_files_for_web_staff_client]] +Install 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 +grunt all +------------------------------------------------------------------------------ + + +Configuration and compilation instructions +------------------------------------------ + +For the time being, we are still installing everything in the `/openils/` +directory. From the Evergreen source directory, issue the following commands as +the *user* Linux account to configure and build Evergreen: + +[source, bash] +------------------------------------------------------------------------------ +PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf +make +------------------------------------------------------------------------------ + +These instructions assume that you have also installed OpenSRF under `/openils/`. +If not, please adjust PATH as needed so that the Evergreen `configure` script +can find `osrf_config`. + +Installation instructions +------------------------- + +1. Once you have configured and compiled Evergreen, issue the following + command as the *root* Linux account to install Evergreen, build the server + portion of the staff client, and copy example configuration files to + `/openils/conf`. + Change the value of the `STAFF_CLIENT_STAMP_ID` variable to match the version + of the staff client that you will use to connect to the Evergreen server. ++ +[source, bash] +------------------------------------------------------------------------------ +make STAFF_CLIENT_STAMP_ID=rel_3_0_10 install +------------------------------------------------------------------------------ ++ +2. The server portion of the staff client expects `http://hostname/xul/server` + to resolve. Issue the following commands as the *root* Linux account to + create a symbolic link pointing to the `server` subdirectory of the server + portion of the staff client that we just built using the staff client ID + 'rel_name': ++ +[source, bash] +------------------------------------------------------------------------------ +cd /openils/var/web/xul +ln -sf rel_name/server server +------------------------------------------------------------------------------ + +Change ownership of the Evergreen files +--------------------------------------- + +All files in the `/openils/` directory and subdirectories must be owned by the +`opensrf` user. Issue the following command as the *root* Linux account to +change the ownership on the files: + +[source, bash] +------------------------------------------------------------------------------ +chown -R opensrf:opensrf /openils +------------------------------------------------------------------------------ + +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 in `Open-ILS/examples/apache/` (for +Apache versions below 2.4) or `Open-ILS/examples/apache_24/` (for Apache +versions 2.4 or greater) to configure your Web server for the Evergreen +catalog, staff client, Web services, and administration interfaces. Issue the +following commands as the *root* Linux account: ++ +.Debian Wheezy +[source,bash] +------------------------------------------------------------------------------ +cp Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/ +cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/ +cp Open-ILS/examples/apache/eg_startup /etc/apache2/ +# Now set up SSL +mkdir /etc/apache2/ssl +cd /etc/apache2/ssl +------------------------------------------------------------------------------ ++ +.Ubuntu Trusty/Xenial and Debian Jessie/Stretch +[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/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 staff client +and browser during testing and development. Create an SSL key for the Apache +server by issuing the following command as the *root* Linux account: ++ +[source,bash] +------------------------------------------------------------------------------ +openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key +------------------------------------------------------------------------------ ++ +. As the *root* Linux account, edit the `eg.conf` file that you copied into +place. + a. To enable access to the offline upload / execute interface from any + workstation on any network, make the following change (and note that + you *must* secure this for a production instance): + * (Apache 2.2): Replace `Allow from 10.0.0.0/8` with `Allow from all` + * (Apache 2.4): Replace `Require host 10.0.0.0/8` with `Require all granted` +. Change the user for the Apache server. + * (Debian and Ubuntu): As the *root* Linux account, edit + `/etc/apache2/envvars`. Change `export APACHE_RUN_USER=www-data` to + `export APACHE_RUN_USER=opensrf`. +. 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. + * (Debian and Ubuntu): 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: ++ +.Debian Wheezy (`/etc/apache2/apache2.conf`) +[source,bash] +------------------------------------------------------------------------------ + + StartServers 15 + MinSpareServers 5 + MaxSpareServers 15 + MaxClients 75 + MaxRequestsPerChild 500 + +------------------------------------------------------------------------------ ++ +.Ubuntu Trusty/Xenial, Debian Jessie/Stretch (`/etc/apache2/mods-available/mpm_prefork.conf`) +[source,bash] +------------------------------------------------------------------------------ + + StartServers 15 + MinSpareServers 5 + MaxSpareServers 15 + MaxRequestWorkers 75 + MaxConnectionsPerChild 500 + +------------------------------------------------------------------------------ ++ +. (Ubuntu Trusty/Xenial, Debian Jessie/Stretch) As the *root* user, + enable the mpm_prefork module: ++ +[source,bash] +------------------------------------------------------------------------------ +a2dismod mpm_event +a2enmod mpm_prefork +------------------------------------------------------------------------------ ++ +. (Debian Wheezy): As the *root* Linux account, enable the Evergreen site: ++ +[source,bash] +------------------------------------------------------------------------------ +a2dissite default # OPTIONAL: disable the default site (the "It Works" page) +a2ensite eg.conf +------------------------------------------------------------------------------ ++ +(Ubuntu Trusty/Xenial, Debian Jessie/Stretch): ++ +[source,bash] +------------------------------------------------------------------------------ +a2dissite 000-default # OPTIONAL: disable the default site (the "It Works" page) +a2ensite eg.conf +------------------------------------------------------------------------------ ++ +. (Debian and Ubuntu): 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: + +.(Debian / Ubuntu) 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-'. 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-debian-wheezy +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 , , +, , and with the appropriate values for your +PostgreSQL database (where and are for the *evergreen* +PostgreSQL account you just created), and replace and +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 --password --hostname --port \ + --database --admin-user --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 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 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 +------------------------------------------------------------------------------ + +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 dacb5a36b7..c45a51cce6 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@list.georgialibraries.org) -AM_INIT_AUTOMAKE([OpenILS], [trunk]) +AC_INIT(Open-ILS, 3.0.10, open-ils-dev@list.georgialibraries.org) +AM_INIT_AUTOMAKE([OpenILS], [3.0.10]) AC_REVISION($Revision: 0.1 $) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])