LP1990969: Remove Ubuntu Bionic Beaver Installation Prerequisites Since Ubuntu Bionic Beaver (18.04) is soon EOL, remove it as a viable installation target. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP1981746: add Geo::Coder::Bing to geosort application module Signed-off-by: Llewellyn Marshall <llewellyn.marshall@ncdcr.gov> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
LP#1842297: Implements patron sign-on to the OpenAthens service. For libraries who are OpenAthens customers, they can configure Evergreen to sign their patrons on to OpenAthens either immediately when they sign on to Evergreen, or on demand when they select their library as their method to sign on to OpenAthens-protected resources. Signed-off-by: oajulianclementson <51331324+oajulianclementson@users.noreply.github.com> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP#1729620 Updating modern dependencies to include OAI library Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
LP1937294: Update Prerequisite Installation for PostgreSQL Server Add targets to install PostgreSQL server version 11 through 14 via the Makefile.install prerequisite installer. Drop PostgreSQL version 9.6 as an installation target. Use PostgreSQL 14 client as it should be backwards compatible and is required if using the PostgreSQL 14 server. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
LP#1922975: install python3 dependencies, rather than python2 Also specifies python3 in the shebang lines of python scripts, and improves the documentation for translators about installing these dependencies. Signed-off-by: Jane Sandberg <sandbergja@gmail.com> Signed-off-by: Bill Erickson <berickxx@gmail.com>
LP#1944765: enable the Apache module mod_headers This patch enables mod_headers for Debian Stretch and Buster and Ubuntu Bionic and Focal during installation. Without mod_headers, the Angular staff client application can have its index page cached for 24 hours on a stock system, meaning that browsers will not consistently fetch the updated app after an upgrade. This patch does not change the Fedora Makefile as mod_headers is enabled by default on RHEL-like distributions. UPGRADE NOTES ------------- Existing Evergreen systems on Debian and Ubuntu should do the following to ensure that mod_headers is active: sudo a2enmod headers sudo systemctl restart apache2 To test ------- [1] Perform a fresh installation of Evergreen on Stretch, Buster, Bionic, or Focal. [2] Verify that mod_headers is enabled. [3] (Optional) Fetch the Angular staff client index page, e.g., /eg2/staff, and verify that the response headers call for not caching it. Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP1850156: Remove Browsers From *-developer Targets Because the developer targets are currently necessary for a from-git installation, both Firefox and Chrome are removed and the docs updated to note that you should install one or both if you want to run the tests. Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Lp 1936662: Add CPAN Module Prerequisites for Debian and Ubuntu This commit adds the missing CPAN module prerequisites for the "did you mean" feature to the PostgreSQL server Makefile targets for Debian Jessie, Stretch, Buster and Ubuntu Bionic. They were added to the Makefile target for Ubuntu Focal but were apparently overlooked in the other distros. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP#1893997: Did you mean? Single word, single class This commit embodies the first stage of a larger search suggestion project. The bulk of the code is dedicated to providing an implementation of the SymSpell[1] algorithm as the basis for very fast word similarity testing for spelling suggestions as well as alternate search suggestions. The native in-memory algorithm specifies a hash table lookup using a runtime-created dictionary. As it is untenable to create and maintain a separate in-memory data structure in the distributed environment that OpenSRF provides, and adds significantly to the administrative complexity of such a configuration, we instead maintain a dictionary in the authoritative Postgres database used by Evergreen. This dictionary is based directly on indexed terms used for general search, and aims to avoid zero-hit suggestions wherever possible while imposing as little performance impact as can be managed. In addition to the core SymSpell similarity metric, Damerau-Levenshtein edit distance, we provide Soundex, Trigram, and QWERTY Keyboard similarity measures. The importance of these can be adjusted relative to one another, or turned off individually. Global term frequncey data is captured for each of the Evergreen search classes and is used to help decide when to use specific terms, and which terms to use as suggestions. Suggestions are provide in the OPAC, including the staff-embedded OPAC view, the KPAC, and the Angular catalog. Later development will add the ability to perform mult-word and phrase-oriented suggestions, to suggest searching requested terms in other search classes, and provide local thesaurus values and exclusion term lists. [1] https://medium.com/@wolfgarbe/1000x-faster-spelling-correction-algorithm-2012-8701fcd87a5f NOTE: This development adds two new Perl module dependencies, and will therefore require a dependency update at upgrade time. Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Gina Monti <gmonti@biblio.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
lp1863252 make Geo::Coder::Free optional Restore Geo::Coder::Google to the CPAN module list and remove the Googlev3 package. Geo::Coder::Google requires an API key, and Geo::Coder::Googlev3 purports not to but is currently giving a REQUEST_DENIED to requests and is a known issue. Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
LP#1863252 - Use APT for Perl dependencies where possible. Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
lp1863252 toward geosort From the release notes: Sort Holdings by Geographical Proximity ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This functionality integrates 3rd party geographic lookup services to allow patrons to enter an address on the record details page in the OPAC and sort the holdings for that record based on proximity of their circulating libraries to the entered address. To support this, latitude and longitude coordinates may be associated with each org unit. Care is given to not log or leak patron provided addresses or the context in which they are used. squashed commits: * actor.org_address * config.geolocation_service * config.global_flag * opac.holdings_sort_by_geographic_proximity OUS * opac.geographic_proximity_in_miles OUS * opac.geographic_location_service_for_address * permission.perm_list * Geo.pm, opensrf*.xml, ils_events.xml * Org Unit Configuration * OPAC Record Details * release notes * remove base_url * provide an open-ils.actor wrapper for open-ils.geo.retrieve_coordinates * some error trapping This will throw the GEOCODING_LOCATION_NOT_FOUND event for a wider range of problems. With the Google service, you can test by providing a bad API key or sending the copyright symbol as an address to lookup. * distribute permissions to stock perm groups * prerequisite cpan modules * live_t/ tests Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
LP#1860703: Create A/T hook and reactor for push integration There is currently no stock mechanism for pushing information out of Evergreen to trigger activities in external systems. Third party discovery systems, among other external systems, would benefit from the ability to be alerted of changes to data within an Evergreen instance. This commit adds such a capability by supplying a new A/T reactor module that can make HTTP requests that supply data to a third party endpoint. To support the discovery system use case, this commit also adds a new A/T hook, bre.edit, fired whenever a bibliographic record is modified due to staff interaction. Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Troy Leonard <leonardt@aadl.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Lp 1801163: Switch to Email::MIME in SendEmail A/T Reactor Switch from Email::Simple to Email::MIME Perl module in the SendEmail Action/Trigger Reactor. Email::MIME properly encodes unescaped header fields when added to the message with the header_str_set method. We allow only 1 of each address field to be created while doing the encoding, so that messages conform to RFC 2822. This commit adds a new prerequisite as mentioned in the release notes, so be sure to install the prerequisites for your Linux distribution before installing. You can test this with concerto data from a fresh installation by: 1. Configuring your test system to send email. 2. Updating all actor.usr entries to have your email address. 3. Updating the New User Created Welcome Notice event definiton to active = true. 4. Run the action_trigger_runner with --process-hooks --run-pending. 5. You should get 237 new user welcome emails. The exact number is subject to change. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Boyer <JBoyer@eoli.info>
LP#1849208 - Add PostgreSQL 10 Makfile.install targets Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: blake <blake@mobiusconsortium.org> Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
LP1845693: Test Angular(JS) with modern browsers Rather than using PhantomJS to test Angular(JS), we can use all supported browsers for the web client. Currently this is Firefox and Chrom(ium). Because of the number of dependencies this also requires that testing is removed from the standard build instructions and only done in specific testing environments or on developer machines. Signed-off-by: Jason Boyer <JBoyer@eoli.info> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP1825851 Add Perl HTML::Defang dependency Added dependency to installer makefile. Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kyle Huckins <khuckins@catalyte.io> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
LP#1793585: Fix PostgreSQL apt repo source setup For standalone DB server install, ensure that we are applying the proper PostgreSQL community apt repo for packages. DO NOT backport this branch. There are presently known issues with Ubuntu 18.04 and email generation from action/trigger and other interfaces. We plan to address these before the 3.3 release, but do not necessarily expect to backport those fixes. Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Jason Stephenson <jason@sigio.com>
LP#1793585: Change to use MARC::File::XML Use MARC::File::XML instead of MARC::XML (this is ancient and not used) Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Jason Stephenson <jason@sigio.com>