Koha 20.05.09 released

The Koha community is proud to announce the release of version 20.05.09.
This is a maintenance release and contains many bug-fixes and

As always you can download the release from:


Thank you very much to everyone involved in this release.

Please continue reading for the details this release.


23 Feb 2021

Koha is the first free and open source software library automation
package (ILS). Development is sponsored by libraries of varying types
and sizes, volunteers, and support companies from around the world. The
website for the Koha project is:

Koha 20.05.09 can be downloaded from:

Installation instructions can be found at:

  • Koha Wiki
  • OR in the INSTALL files that come in the tarball

Koha 20.05.09 is a bugfix/maintenance release with security fixes.

It includes 2 security fixes, 1 new features, 13 enhancements, 63 bugfixes.

System requirements

You can learn about the system components (like OS and database) for running Koha here: https://wiki.koha-community.org/wiki/System_requirements_and_recommendations

Security bugs


  • [27604] PatronSelfRegistrationLibraryList can be bypassed
  • [27715] Possibly SQL injection in virtualshelves

New features

Staff Client

  • [14004] Add ability to temporarily disable added CSS and Javascript in OPAC and interface

    This allows to temporarily disable any of OPACUserCSS, OPACUserJS, OpacAdditionalStylesheet, opaclayoutstylesheet, IntranetUserCSS, IntranetUserJS, intranetcolorstylesheet, and intranetstylesheet system preference via an URL parameter.

    Alter the URL in OPAC or staff interface by adding an additional parameter DISABLE_SYSPREF_=1.




  • [27646] Allow export of acquisitions home and funds table

Architecture, internals, and plumbing

  • [24254] Add Koha::Items->filter_by_visible_in_opac

    This patch introduces an efficient way of filtering Koha::Items result sets, to hide items that that shouldn’t be exposed on public interfaces.

    Filtering is governed by the following system preferences. A helper method is added to handle lost items:

    • hidelostitems: Koha::Items->filter_out_lost is added to handle this.

    Some patrons have exceptions so OpacHiddenItems is not enforced on them. That’s why the new method [1] has an optional parameter that expects the logged in patron to be passed in the call.

    [1] Koha::Items->filter_by_visible_in_opac


  • [26943] Show not for loan descriptions in cataloging search (addbooks.pl)

    Adds the ability to see not for loan descriptions in the cataloging search results.

  • [27422] HTML5Media is http by default but Youtube is https onlySponsored by Banco Central de la República Argentina


  • [27306] Add subtitle to return claims table

Command-line Utilities

  • [24272] Add a command line script to compare the syspref cache to the database

    This script checks the value of the system preferences in the database against those in the cache. Generally differences will only exist if changes have been made directly to the DB or the cache has become corrupted.


  • [27029] Detail page missing Javascript accessible biblionumber value


  • [26713] Add pagination to bottom of saved SQL reports table

    This enhancement adds a second pagination menu to the bottom of saved SQL reports tables.

System Administration

  • [27395] Add warning to PatronSelfRegistrationDefaultCategory to avoid accidental patron deletion

    This patch adds a warning to the PatronSelfRegistrationDefaultCategory system
    preference to not use a regular patron category for self registration.

    If a regular patron category code is used and the cleanup_database cronjob is setup
    to delete unverified and unfinished OPAC self registrations, it permanently and
    and unrecoverably deletes all patrons that have registered more than
    PatronSelfRegistrationExpireTemporaryAccountsDelay days ago.

    It also removes unnecessary apostrophes at the end of two self registration
    and modification system preference descriptions.


  • [26755] Make the guarantor search popup taller
  • [26958] Move Elasticsearch mapping template JS to the footer
  • [27192] Set focus for cursor to item type input box when creating new item types
  • [27210] Typo in patron-attr-types.tt

Critical bugs fixed

Architecture, internals, and plumbing

  • [27580] NULL values not correctly handled in Koha::Items->filter_by_visible_in_opac
  • [27586] Import patrons script has a confirm switch that doesn’t do anything

    This fixes the misc/import_patrons.pl script so that patrons are not imported unless the –confirm option is used. Currently, if the script is run without “–confirm” option it reports that it is “Running in dry-run mode, provide –confirm to apply the changes”, however it imports the patrons anyway.

  • [27676] finesMode=off not correctly handled


  • [27707] Renewing doesn’t work when renewal notices are enabled

Hold requests

  • [26634] Hold rules applied incorrectly when All Libraries rules are more specific than branch rules
  • [27068] HoldsQueue doesn’t know how to use holds groups

    Koha 20.05 introduced local hold groups, but neglected to add support of them in the holds queue. Because of this, the holds queue will not show items the could have filled holds from other libraries in a hold group. This patch set adds support for hold groups to the holds queue builder thus improving Koha’s ability to find items to fill hold requests.


  • [15448] Placing hold on specific items doesn’t enforce OpacHiddenItems

System Administration

  • [27569] marc-framework import function doesn’t accept LibreOffice csv/ods file formats

Other bugs fixed


  • [7143] Bug for tracking changes to the about page


  • [23767] Spent and Ordered total values don’t include child funds on acqui-home
  • [24469] Record biblionumber in import_biblio when adding to basket via file
  • [27547] Typo in parcel.tt
  • [27608] Correct ‘accepted by’ inconsistency in suggestion.ttSponsored by Collecto

Architecture, internals, and plumbing

  • [25381] XSLTs should not define entities
  • [25552] Add missing Claims Returned option to MarkLostItemsAsReturned

    Marking an item as a return claim checks the system preference MarkLostItemsAsReturned to see if the claim should be removed from the patron record. However, the option for “when marking an item as a return claim” was never added to the system preference, so there was no way to remove a checkout from the patron record when marking the checkout as a return claim. This patch set adds that missing option.

  • [27154] Koha/Util/SystemPreferences.pm must be removed
  • [27179] Misspelling of Method in REST API files

    This fixes the misspelling of Method (Mehtod to Method) in REST API files.

  • [27327] Indirect object notation in Koha::Club::Hold
  • [27333] Wrong exception thrown in Koha::Club::Hold::add
  • [27530] Sample patron data should be updated and/or use relative dates


  • [27308] Advanced editor should skip blank lines when inserting new fields


  • [8287] Improve filter on checked out from overdues
  • [27011] Warnings in returns.pl

    This patch removes a variable ($name) that is no longer used in Circulation > Check in (/cgi-bin/koha/circ/returns.pl), and the resulting warnings (..[WARN] Use of uninitialized value in concatenation (.) or string at..) that were recorded in the error log.

  • [27538] Cells in the bottom filtering row of the “Holds to pull” table shifted
  • [27548] Warnings “use of uninitialized value” on branchoverdues.pl

    This fixes the cause of unnecessary “use of uninitialized value” warnings in the log files generated by Circulation > Overdues with fines (/cgi-bin/koha/circ/branchoverdues.pl).

    This was caused by not taking into account that the “location” parameter for this form is initially empty.

  • [27549] Warning “use of uninitialized value” on renew.pl

    This fixes the cause of unnecessary “use of uninitialized value” warnings in the log files generated by Circulation > Renew (/cgi-bin/koha/circ/renew.pl).

    This was caused by not taking into account that the “barcode” parameter for this form is initially empty.

  • [27645] Duplicate message in batch checkout
  • [27655] Barcode column is missing from “Holds to pull” table preferences yaml file

Command-line Utilities

  • [11344] Perldoc issues in misc/cronjobs/advance_notices.pl
  • [17429] Document the –plack option for koha-list

Fines and fees

  • [20527] <label> linked to the wrong <input> (wrong “for” attribute) in paycollect.tt

    This fixes the HTML <label for=””> element for the Writeoff amount field on the Accounting > Make a payment form for a patron – changes “paid” to “amountwrittenoff”.


  • [27398] Serials: Values in subscription length pull down are not translatable when defining numbering patterns
  • [27416] String ‘Modify tag’ in breadcrumb is untranslatable


  • [25614] “Clear filter” button permanently disabled on ILL request list

Installation and upgrade (web-based installer)

  • [11996] Default active currencies for ru-RU and uk-UA are wrong

    This fixes the currencies in the sample installer files for Russia (ru-RU; changes GRN -> UAH, default remains as RUB) and the Ukraine (uk-UA; changes GRN -> UAH).

  • [24810] French SQL files for “news” contain “Welcome into Koha 3!”

    This removes the Koha version number from the sample news items for the French language installer files (fr-FR and fr-CA).

  • [24811] French SQL files for “news” contain broken link to the wiki

    This fixes a broken link in the sample news items for the French language installer files (fr-FR and fr-CA).

MARC Bibliographic data support

  • [25632] Update MARC21 frameworks to update Nr. 30 (May 2020)


  • [24447] POD of C4::Members::Messaging::GetMessagingPreferences() is misleading


  • [27297] When itemtype is marked as required in OpacSuggestion MandatoryFields the field is not required
  • [27450] Making password required for patron registration breaks patron modification
  • [27571] “Add to lists” on MARC and ISBD view of OPAC detail page doesn’t open in new window


  • [26059] Create guarantor/guarantee links on patron import
  • [27454] Additional patron attributes change sequence on every reload of edit page

    This fixes the order that additional patron attributes are displayed on the patron edit form. They are now sorted by the attribute code, before this they displayed in a random order.


  • [26181] Holds placed via the REST API should not be forced by default even if AllowHoldPolicyOverride is enabled

    This patch disables AllowHoldPolicyOverride by default in the /holds REST API. It also adds tests for this behaviour, and adds a header that can be used to request the override explicitly.


  • [25808] Renewal via the SIP ‘checkout’ message gives incorrect message
  • [27204] SIP patron information request with fee line items returns incorrect data


  • [26957] Find duplicate removes operators from the middle of search terms

Searching – Elasticsearch

  • [27307] “Keyword as phrase” option in search dropdown doesn’t work with Elastic

Searching – Zebra

  • [27299] Zebra phrase register is incorrectly tokenized when using ICU

    Previously, Zebra indexing in ICU mode was incorrectly tokenizing text for the “p” register. This meant that particular phrase searches were not working as expected. With this change, phrase searching works the same in ICU and CHR modes.

Staff Client

  • [27653] Do not include ‘caption’ row in print/copy export of datatables


  • [20238] Show description of ITEMTYPECAT instead of code in itemtypes summary table

    This enhancement changes the item types page (Koha administration > Basic parameters > Item types) so that the search category column displays the ITEMTYPECAT authorized value’s description, instead of the authorized value code. (This makes it consistent with the edit form where it displays the descriptions for authorized values.)

  • [24055] Description of PayPalReturnURL system preference is unclear

    This enhancement improves the description of the PayPalReturnURL. Changed from ‘configured return’ to ‘configured return URL’ as this is what it is called on the PayPal website.

  • [26602] Datatables – Actions columns should not be exported
  • [27457] Set focus for cursor to Debit type code field when creating new debit type
  • [27458] Set focus for cursor to Credit type code field when creating new credit type
  • [27525] ‘wich’ instead of a ‘with’ in a sentence

    This patch fixes two spelling errors in the batchMod-del.tt template that is used by the batch item deletion tool in the staff interface: “wich” -> “with.”

  • [27531] Remove type attribute from script tags: Cataloging plugins
  • [27561] Remove type attribute from script tags: Various templates
  • [27654] “Table settings for Pages” need to be sorted on “Administration -> Table settings”

Test Suite

  • [27554] Clarify and add tests for Koha::Patrons->update_category_to child to adult


  • [26298] If MaxItemsToProcessForBatchMod is set to 1000, the max is actually 999
  • [27576] Don’t show import records table when cleaning a batch


The Koha manual is maintained in Sphinx. The home page for Koha
documentation is

As of the date of these release notes, only the English version of the
Koha manual is available:

The Git repository for the Koha manual can be found at


Complete or near-complete translations of the OPAC and staff
interface are available in this release for the following languages:

  • Arabic (98.9%)
  • Armenian (99.9%)
  • Armenian (Classical) (99.7%)
  • Chinese (Taiwan) (94.3%)
  • Czech (80.8%)
  • English (New Zealand) (66.7%)
  • English (USA)
  • Finnish (70.6%)
  • French (81.9%)
  • French (Canada) (97.4%)
  • German (100%)
  • German (Switzerland) (74.5%)
  • Greek (62.1%)
  • Hindi (100%)
  • Italian (100%)
  • Norwegian Bokmål (71.1%)
  • Polish (73.5%)
  • Portuguese (86.9%)
  • Portuguese (Brazil) (98%)
  • Russian (86.7%)
  • Slovak (89.8%)
  • Spanish (99.9%)
  • Swedish (79.7%)
  • Telugu (89.6%)
  • Turkish (100%)
  • Ukrainian (66.5%)

Partial translations are available for various other languages.

The Koha team welcomes additional translations; please see

For information about translating Koha, and join the koha-translate
list to volunteer:

The most up-to-date translations can be found at:

Release Team

The release team for Koha 20.05.09 is

  • Release Manager: Jonathan Druart
  • Release Manager assistants:
    • Martin Renvoize
    • Tomás Cohen Arazi
  • QA Manager: Katrin Fischer
  • QA Team:
    • David Cook
    • Agustín Moyano
    • Martin Renvoize
    • Marcel de Rooy
    • Joonas Kylmälä
    • Julian Maurice
    • Tomás Cohen Arazi
    • Josef Moravec
    • Nick Clemens
    • Kyle Hall
    • Victor Grousset
  • Topic Experts:
    • UI Design — Owen Leonard
    • REST API — Tomás Cohen Arazi
    • Zebra — Fridolin Somers
    • Accounts — Martin Renvoize
  • Bug Wranglers:
    • Amit Gupta
    • Mengü Yazıcıoğlu
    • Indranil Das Gupta
  • Packaging Managers:
    • David Cook
    • Mason James
    • Agustín Moyano
  • Documentation Manager: Caroline Cyr La Rose
  • Documentation Team:
    • Marie-Luce Laflamme
    • Lucy Vaux-Harvey
    • Henry Bolshaw
    • David Nind
  • Translation Managers:
    • Indranil Das Gupta
    • Bernardo González Kriegel
  • Release Maintainers:
    • 20.11 — Fridolin Somers
    • 20.05 — Andrew Fuerste-Henry
    • 19.11 — Victor Grousset


We thank the following libraries who are known to have sponsored
new features in Koha 20.05.09:

  • Banco Central de la República Argentina
  • Collecto

We thank the following individuals who contributed patches to Koha 20.05.09.

  • Ethan Amohia (1)
  • Tomás Cohen Arazi (17)
  • Eden Bacani (3)
  • Philippe Blouin (1)
  • Nick Clemens (17)
  • David Cook (2)
  • Jonathan Druart (40)
  • Katrin Fischer (3)
  • Andrew Fuerste-Henry (5)
  • Lucas Gass (2)
  • Didier Gautheron (1)
  • Kyle M Hall (14)
  • Mazen Khallaf (2)
  • Amy King (3)
  • Bernardo González Kriegel (1)
  • Joonas Kylmälä (1)
  • Owen Leonard (9)
  • Ava Li (3)
  • Catherine Ma (1)
  • Agustín Moyano (1)
  • James O’Keeffe (1)
  • Martin Renvoize (5)
  • Marcel de Rooy (3)
  • Caroline Cyr La Rose (1)
  • Andreas Roussos (2)
  • Fridolin Somers (2)
  • Koha Translators (1)
  • Petro Vashchuk (5)
  • Ella Wipatene (2)

We thank the following libraries, companies, and other institutions who contributed
patches to Koha 20.05.09

  • Athens County Public Libraries (9)
  • BibLibre (3)
  • Bibliotheksservice-Zentrum Baden-Württemberg (BSZ) (3)
  • ByWater-Solutions (38)
  • Dataly Tech (2)
  • gamil.com (2)
  • Independant Individuals (19)
  • Koha Community Developers (40)
  • Prosentient Systems (2)
  • PTFS-Europe (5)
  • Rijks Museum (3)
  • Solutions inLibro inc (2)
  • Theke Solutions (18)
  • Universidad Nacional de Córdoba (1)
  • University of Helsinki (1)

We also especially thank the following individuals who tested patches
for Koha.

  • Mark Hofstetter mark@hofstetter.at (1)
  • Eden Bacani (1)
  • Nick Clemens (15)
  • David Cook (1)
  • Sarah Daviau (1)
  • Michal Denar (1)
  • Jonathan Druart (92)
  • Katrin Fischer (56)
  • Martha Fuerst (1)
  • Andrew Fuerste-Henry (149)
  • Marti Fyerst (3)
  • Lucas Gass (6)
  • Victor Grousset (4)
  • Amit Gupta (1)
  • Kyle M Hall (18)
  • Sally Healey (2)
  • Ron Houk (7)
  • Barbara Johnson (10)
  • Mazen Khallaf (1)
  • Joonas Kylmälä (7)
  • Owen Leonard (6)
  • Julian Maurice (1)
  • Kelly McElligott (2)
  • Telishia Mickens (1)
  • Josef Moravec (1)
  • David Nind (15)
  • Andrew Nugged (1)
  • Séverine Queune (1)
  • Martin Renvoize (44)
  • Phil Ringnalda (1)
  • Marcel de Rooy (14)
  • Fridolin Somers (136)

We regret any omissions. If a contributor has been inadvertently missed,
please send a patch against these release notes to

Revision control notes

The Koha project uses Git for version control. The current development
version of Koha can be retrieved by checking out the master branch of:

The branch for this version of Koha and future bugfixes in this release
line is rmain2005.

Bugs and feature requests

Bug reports and feature requests can be filed at the Koha bug
tracker at:

He rau ringa e oti ai.
(Many hands finish the work)

Autogenerated release notes updated last on 23 Feb 2021 20:26:24.

Tagged with: , ,