1. Upgrade notes

1.1. New Color in colors.tt2

A new color called mobile_header_text has been added to colors.tt2. Evergreen sites will need to customize this color so that it fits with their catalog’s color scheme. The color is used to define new search links that will appear in My Account screens when viewed on screens smaller than 600px wide. It will also be used on any future text that appears in the header area of the catalog.

After this update, it is recommended that you reingest your bibliographic records to update the fixed field, record attribute indexes. This is mainly necessary to make sure that fiction books do not also show up as non-fiction.

You can accomplish this by running the following query in your database:

select metabib.reingest_record_attributes(id)
from biblio.record_entry;

2. New features

2.1. Acquisitions

2.1.1. Acquisitions speed improvements

Improvements to the rendering of the acquisitions fund selector will improve the speed at which the purchase order, copy grid, PO/invoice charge creator, and distribution formula editor load. These speed improvements will be most noticeable for sites that use many funds.

2.1.2. Differentiate Delayed vs. Canceled Items


Canceled and delayed lineitems and copies in acquisitions are marked as canceled in the database. The determining factor of whether an item is delayed or canceled is the keep_debits flag on the cancel reason.

The changes below help to differentiate between these two closely-related states by improving labels in the interface and providing separate counts for delayed vs. canceled.

  • Show number canceled and number delayed in lineitem summary displays

    • Includes summary displays in invoices and copy grids

  • Update stock cancel cause labels to include "Canceled:.." and "Delayed:…" prefixes.

  • When a lineitem or copy is marked as canceled, show the cancel cause label in the interface instead of the bare (and misleading and non-I18N friendly) string "cancelled".

    • Related, for non-canceled states, show a translatable string representing the name of the state instead of the bare state code.

  • Add cancel cause labels to the print PO and lineitem worksheet templates.

Support Cancellation of Delayed Lineitems

When a lineitem is marked as delayed (canceled with keep_debits == true), allow staff to cancel the lineitem again in the ACQ PO/Selection List interface. Once a lineitem is marked as truly canceled, it cannot be canceled again.

2.2. Administration

2.2.1. Switch to XLSX format for Excel report output

With previous versions of Evergreen, reports generated in the Excel output were limited to a maximum of 64,000 rows. This was a limitation due to the Excel format ".xls". Now, new report outputs for Excel will use format ".xlsx" which allows for much larger report output rows.

2.2.2. Report Editing

Users may now view and edit existing reports.

With each report in the Reports folder view there are two new links, one for viewing (read-only) and one for editing. After changing a report, the user has the option to save the modified report or create a new report with the new values, in effect cloning the original report.

When saving a changed report that has a pending run, the user will be warned of this and asked if they would prefer to modify the scheduled report or to instead save the changed values as a new report, leaving the original report intact.

  • Report templates support a new External URL field, which may contain a link to template-specific, local documentation.

    • When set, a link to the external documentation will be displayed in a new column in the template list and within the report editor.

    • URL’s are set in the Documentation URL entry.

  • Template display fields and filters support a new Field Hint value. When set, hints are displayed in the report editor.

    • Values are set via the Change Field Hint option along the bottom of the template editor.

2.2.4. Secondary Permission Groups

The patron registration/edit screen now has an interface for adding secondary permission groups (profiles) to a user account. This gives library staff the ability to assign sets of permissions from multiple permission groups to a single user. For example, if you have a cataloger who also does acquisitions, and you have separate permission groups for Catalogers and Acquisitions, the new UI allows you to add acquisitions as a secondary perm group on the cataloger’s account, thus granting all Acquisitions permissions to that user without changing the user’s primary profile group.

Library staff require the CREATE_USER_GROUP_LINK and REMOVE_USER_GROUP_LINK permissions (which already exist in Evergreen) in order to add or remove a user’s secondary permission groups.

2.3. Cataloging

Adds view and edit links next to each copy in the TPAC record details copy grid when viewed from within the staff client. The edit link only appears when the authenticated user has permission to edit the specified copy.

Both links open new tabs. When the edit link is used, the Unified Volume/Item Creator/Editor org unit setting is inspected to determine which style of copy edit interface to display. When the view link is used, the copy details display in the Item Status screen.

2.3.2. Display "Imported As" in Vandelay Queue

This simple new feature appears within the Cataloging MARC Batch Import/Export screens. When viewing the contents of a Vandelay queue, for example when inspecting a queue or right after bib imports, there is a new column called Imported As. This new column displays the record ID, also known as the bib number, of the bib records currently listed in the queue. If the bib records listed in the queue have not been imported yet, this column is blank until the queued records are imported. After import the queued records will display the assigned record ID for the listed bib(s).

2.3.3. MARC Stream Importer

New command line options were added to marc_stream_importer.pl for passing additional Vandelay import flags. Prior to this change, only auto-overlay-exact was supported.

New options:

  • --auto-overlay-exact

    • Overlay/merge on exact 901c matches

  • --auto-overlay-1match

    • Overlay/merge when exactly one match is found

  • --auto-overlay-best-match

    • Overlay/merge on best match

  • --import-no-match

    • Import when no match is found

Like Vandelay, these options can be combined.

2.3.4. Monograph Part Merging

The monograph part list for a bibliographic record may, over time, diverge from the proscribed format, resulting in multiple labels for what are essentially the same item. For instance, Vol. 1 may have variants like V.1, Vol 1, or  Vol. 1 (leading space).This feature will allow cataloging staff to collapse the variants into one value.

2.4. Circulation

2.4.1. Change to Holds Shelf Expire Report

When limiting to Clearable Holds in the Browse Holds Shelf interface, the system will no longer display and clear holds expiring today. Instead, it will look for holds that expired before today.

2.4.2. Support holds targeting and fulfillment of precats for ILL

Adds support for holds targeting and fulfillment of copy-level holds on pre-cat records. This feature makes integration with FulfILLment, NCIP and other ILL mediators easier because pre-cat copies can successfully be used for the ILL records.

2.4.3. Support for a Lost and Paid Status

This feature supports a new, optional, Lost and Paid status that can be used by sites that want to distinguish between lost items with outstanding bills and those that have been fully paid. A site may want to make this distinction to set different OPAC visibility or holdability rules for these items.

If enabled, when a lost item is fully paid, the copy’s status will automatically change to Lost and Paid.

New setting available via the Library Settings Editor
  • Use Lost and Paid copy status (circ.use_lost_paid_copy_status)

2.5. Client

2.5.1. Web client preview

The 2.7 release will contain a preview of web client circulation features. Circulation is the first step in moving all staff functions from the existing XULRunner-based client to a web application that will be based on AngularJS.

Evergreen is moving away from the existing client because XULRunner no longer supports features critical to the Evergreen software, including remote XUL, multi-part streaming, and XML JavaScript. The new web client is expected to show some speed improvements, to provide comprehensive support for internationalization/localization, to provide good support for assistive technologies, to be easier to customize locally, and to be more mobile friendly.

The intent of the preview is to make it easier for end users at Evergreen sites to try the new client, become familiar with its features, and to discover/report bugs that are found. Instructions to implement the web client can be found in the code in Open-ILS/web/js/ui/default/staff/README.install. These will be revised and moved to the full README for 2.7.1.

2.6. OPAC

2.6.1. Added Content by Record ID

The Template Toolkit OPAC will now load all Added Content by the Record ID, not just jacket images. This will allow added content providers that support it to load additional content by other identifiers.

2.6.2. Content Cafe Added Content Update

The OpenILS::WWW::AddedContent::ContentCafe provider has been updated to use the newer Content Cafe 2 API in full. With this update the ability to load content based on ISBN or UPC is now enabled.

"No Image" Images

With the updated code the option for displaying a "No Image" image or a 1x1 pixel image is no longer available. Instead the Apache-level "blank image" rules will trigger when no image is available. The configuration option controlling this behavior can thus be removed from opensrf.xml entirely.

Identifier Selection

By default the module will prefer ISBNs over UPCs, but will request information for both. If you wish for UPCs to be preferred, or wish one of the two identifier types to not be considered at all, you can change the "identifier_order" option in opensrf.xml. When the option is present only the identifier(s) listed will be sent.

2.6.3. More RDA 264 tag support

The OPAC now displays RDA bib tag 264 information for Producer, Distributor, Manufacturer, and Copyright within a full bib record’s summary. This is in addition to the RDA bib tag 264 publisher information, indicator 2 equal to 1, that was already being displayed in previous versions of Evergreen. The OPAC full bib view also now contains the Schema.org copyrightYear value.

Additionally, this information is now available in search results as well when viewing more details.

2.6.4. Sitemap generator

A sitemap directs search engines to the pages of interest in a web site so that the search engines can intelligently crawl your site. In the case of Evergreen, the primary pages of interest are the bibliographic record detail pages.

The sitemap generator script creates sitemaps that adhere to the http://sitemaps.org specification, including:

  • limiting the number of URLs per sitemap file to no more than 50,000 URLs;

  • providing the date that the bibliographic record was last edited, so that once a search engine has crawled all of your sites' record detail pages, it only has to reindex those pages that are new or have changed since the last crawl;

  • generating a sitemap index file that points to each of the sitemap files.

3. Bug Fixes


For users of Apache version 2.4, a serious security flaw that allows unauthorized remote access to reporter output and potentially other sensitive data is fixed in the following releases of Evergreen: 2.6.8, 2.7.5, and 2.8.1. All prior releases of Evergreen are vulnerable to exploitation of this flaw to reveal sensitive system information. If you are running a vulnerable release of Evergreen you are strongly encouraged to upgrade to a non-vulnerable release as soon as possible.

Apache version 2.2 is not affected.

In addition to upgrading Evergreen, a configuration change is required for users of Apache version 2.4. Any <Location> or <Directory>, etc. configuration section in the /etc/apache2/eg_vhost.conf (debian/ubuntu) file which contains "PerlAuthenHandler OpenILS::WWW::Proxy::Authen" should be edited. For each, remove the line reading "Require all granted".

For example, this section:

<Location /collections>
    SetHandler perl-script
    AuthType Basic
    AuthName "Collections Login"
    PerlOptions +GlobalRequest
    PerlSetVar OILSProxyPermissions "money.collections_tracker.create"
    PerlAuthenHandler OpenILS::WWW::Proxy::Authen
    Require valid-user
    Options +ExecCGI
    PerlSendHeader On
    Require all granted

Should have its final line removed and be changed to:

<Location /collections>
    SetHandler perl-script
    AuthType Basic
    AuthName "Collections Login"
    PerlOptions +GlobalRequest
    PerlSetVar OILSProxyPermissions "money.collections_tracker.create"
    PerlAuthenHandler OpenILS::WWW::Proxy::Authen
    Require valid-user
    Options +ExecCGI
    PerlSendHeader On


A serious security flaw that allows unauthorized remote access to organizational unit settings is fixed in the following releases of Evergreen: 2.5.9, 2.6.7, and 2.7.4. All prior releases of Evergreen are vulnerable to exploitation of this flaw to reveal sensitive system information. If you are running a vulnerable release of Evergreen you are strongly encouraged to upgrade to a non-vulnerable release as soon as possible.

3.3. Set resource limits for Clark Kent

Several parameters are now available for the reporter daemon process (clark-kent.pl) to control resource usage. These can be used to reduce the chances that a malformed report can cause indigestion on a database or reports server. The new parameters, which can be set in opensrf.xml or as command-line switches for clark-kent.pl are

  • //reporter/setup/statement_timeout / --statement-timeout

Number of minutes to allow a report’s underlying SQL query to run before it gets cancelled. Default value is 60 minutes. If a report’s query gets cancelled, the error_text value will be set to a valid that indicates that the allowed time was exceeded.

  • //reporter/setup/max_rows_for_charts / --max-rows-for-charts

Number of rows permitted in the query’s output before Clark Kent refuses to attempt to draw a graph. Default value is 1,000 rows.

  • //reporter/setup/resultset_limit / --resultset-limit

If set, truncates the report’s output to the specified number of hits. Note that it will not be apparent to a staff user if the report’s output has been truncated. Default value is unlimited.

The report concurrency (i.e., the number of reports that Clark Kent will run in parallel) can now also be controlled via the opensrf.xml setting //reporter/setup/parallel.

4. Acknowledgments

The Evergreen project would like to acknowledge the following organizations who commissioned developments in this release of Evergreen:

  • Bibliomation

  • British Columbia Libraries Cooperative

  • Central/Western Massachusetts Automated Resource Sharing

  • Georgia Public Library Service

  • Howe Library, Hanover, NH

  • Massachusetts Library Network Cooperative

  • NC Cardinal

  • North of Boston Library Exchange

  • Pennsylvania Integrated Library System

  • Pioneer Library System

  • South Carolina Library Evergreen Network Delivery System

We would also like to thank the following individuals who contributed code and documentations patches to this release of Evergreen:

  • Thomas Berezansky

  • Jason Boyer

  • Steven Callender

  • Steven Chan

  • Galen Charlton

  • Jeff Davis

  • Bill Erickson

  • Jason Etheridge

  • James Fournie

  • Jeff Godin

  • Blake Henderson

  • Pasi Kallinen

  • Victoria Lewis

  • Kathy Lussier

  • Terran McCanna

  • Michele Morgan

  • Suzanne Paterno

  • Dan Pearl

  • Jennifer Pringle

  • Erica Rohlfs

  • Mike Rylander

  • Dan Scott

  • Srey Seng

  • Chris Sharp

  • Ben Shum

  • Robert Soulliere

  • Remington Steed

  • Jason Stephenson

  • Josh Stompro

  • Yamil Suarez

  • Kyle Tomita

  • Elliot Voris

  • Dan Wells

  • Liam Whalen

We also thank the following organizations whose employees contributed patches:

  • Berklee College of Music

  • Bibliomation

  • British Columbia Libraries Cooperative

  • Calvin College

  • Catalyst IT Services

  • Central/Western Massachusetts Automated Resource Sharing

  • Equinox Software, Inc.

  • Georgia Public Library Service

  • Indiana State Library

  • Lake Agassiz Regional Library

  • Laurentian University

  • Massachusetts Library Network Cooperative

  • Merrimack Valley Library Consortium


  • Mohawk College

  • North of Boston Library Exchange

  • Pohjois-Karjalan Tietotekniikkakeskus Oy

  • St. Louis Christian College

  • Traverse Area District Library

We regret any omissions. If a contributor has been inadvertently missed, please open a bug at http://bugs.launchpad.net/evergreen/ with a correction.