Koha 22.05.04 released


22 Aug 2022

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 22.05.04 can be downloaded from:

Installation instructions can be found at:

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

Koha 22.05.04 is a bugfix/maintenance release.

It includes 16 enhancements, 47 bugfixes.

System requirements

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



  • [31001] “CGI::param called in list context” warning in basket.pl flooding error log

    This fixes the cause of a warning message that appears in the system logs when emailing an order to a vendor (Acquisitions > [select a vendor] > [select a basket] > E-mal order). The warning message was “[WARN] CGI::param called in list context from /kohadevbox/koha/acqui/basket.pl line 175, this can lead to vulnerabilities. See the warning in “Fetching the value or values of a single named parameter” at /usr/share/perl5/CGI.pm line 414.”.

Architecture, internals, and plumbing

  • [29454] Stash itemtypes in plugin objects to reduce DB calls
  • [30848] Introduce Koha::Filter::ExpandCodedFields
  • [30950] timepicker.inc is no longer used and should be removed


  • [30716] Add Collection column to cn_browser results table
  • [30775] 952w should have datepicker plugin enabled for it by default

    This enhancement adds the date picker to 952$w (price effective from).

    This improves usability (952$d (date acquired) has the date picker enabled) and also adds date field validation (the date is added to the database as YYYY-MM-DD and when entered incorrectly it can lead to crashes in other areas).

  • [30871] Make it clear that 008 Type of Material is controlled by Leader 6th position in MARC21

    This enhancement adds title elements or clarifies existing title elements to indicate how default values are chosen (for both the default and advanced editor).

Installation and upgrade (command-line installer)

  • [25622] Change way MySQL password is generated by koha-create


  • [30566] Incorporate link handling in OPAC’s biblio-title include

    Output of titles in the OPAC was centralized into an include file (biblio-title), but unlike the staff interface this didn’t include the option of adding a link to the default bibliographic view. This enhancement provides that option. It also updates OPAC pages where the biblio-title include was previously wrapped in an anchor tag, to add a link parameter: [% INCLUDE ‘biblio-title.inc’ link=> 1 %]

  • [31064] Local login is difficult to style using CSS


  • [29055] Focus on keyword field when subscription biblio search window opens


  • [26486] Group edit buttons in reports toolbar
  • [30609] Reindent serial claims template

    This enhancement updates the serial claims template in the staff interface (claims.tt) so that the indentation is consistent and replaces tabs with spaces. It also adds comments to highlight the markup structure.

  • [30936] Reindent authority detail template in staff interface


  • [22659] Add ‘save and continue’ functionality to news and HTML customizations

    Adds the ability to save & continue when working with either News or HTML customization editors.

  • [31062] Change description of QOTD tool in tools-home

    This enhancement changes the name and description of the QOTD tool in order to make them more consistent with the other tool names and descriptions.

Critical bugs fixed

Architecture, internals, and plumbing

  • [30939] remove_unused_authorities.pl is broken

    This fixes the ./misc/migration_tools/remove_unused_authorities.pl script so that it now works and deletes unused authority records. Before this, it generated an error message at the first unused authority record and stopped (without deleting any unused authority records).


  • [29958] Missing dateaccessioned is set to today when storing an item

    This fixes editing items without an accession date – the accessioned date will remain empty, instead of being updated to today’s date.

  • [31179] Duplicate item is duplicating internal item fields

Searching – Zebra

  • [31106] Error searching for analytics in detail view

    Sponsored by Theke Solutions

    This fixes two issues that affect searching and links for analytics on the detail view pages for records in the staff interface and OPAC:

    1. Several characters will break Zebra search engine queries, so search terms need to be quoted by the query builder for things to work. Double quotes in titles and used in search terms were not escaped, cuasing issues with results.
    2. This caused links to and from host records using 773$t and 773$a to fail (not find or display the expected results).

    Example: Before this was fixed, for a host record with the title ‘Uncond”itional?¿’ and child records linked using 773$t and 773$a:

    • the ‘Show analytics’ link was not displayed in the staff interface and OPAC for the host record
    • the link from the child record back to the host record (‘In’ Title of host record (linked)) didn’t work.

System Administration

  • [29951] Cannot add splitting rule to classification sources

    This fixes an error* that was displayed when adding a splitting rule to classifications sources (Administration > Catalog > Classification configuration).

    • Clicking ‘Add a splitting rule’ generates an error page starting “Can’t locate object method “subclasses” via package “C4::ClassSplitRoutine” at /kohadevbox/koha/C4/ClassSplitRoutine.pm line 53″.

Test Suite

  • [31108] rename ./t/00-check-atomic-updates.pl extension to *.t


  • [30889] Background jobs lead to wrong/missing info in logs

Other bugs fixed

Architecture, internals, and plumbing

  • [30744] Use RecordProcessor in get_marc_notes to ensure non-public notes do not leak
  • [30823] Recalls should use ‘FILL’ in action logs

    Sponsored by Catalyst

    This enhancement changes recall fulfillment actions to log with the FILL action, same as holds. It will also update existing recalls FULFILL actions in the database to use the FILL action.

  • [31053] Add Context module to Koha/Encryption
  • [31058] Bad import in auto_unsuspend_holds


  • [30976] Cover images for biblio should be displayed first


  • [29050] Add punctuation in Unseen Renewals message

    Sponsored by Catalyst

  • [31085] The return claims table no longer reloads on resolution
  • [31087] Undefined notes in returns claims get stringified to ‘null’

Fines and fees

  • [30567] Create manual invoice with FR currency format show the incorrect format

    This fixes the price formatting when CurrencyFormat = FR. When adding a manual invoice, the amount input field was shown with a comma for debit types with default amounts, but it should be a decimal point. (For input fields we always use the decimal point and the display format uses the decimal separator defined by CurrencyFormat.)


  • [30991] [% ELSE %]0[% END %] will break translations if used for assigning variables

    Sponsored by Catalyst

Label/patron card printing

  • [30837] Fix table width on ‘Print summary’

    This fixes the width of the table for the print summary so that it fits the width of the page.


  • [31122] Terminology: Replace & with and for Notices & slips

    This updates occurrences of ‘Notices & slips’ with ‘Notices and slips’, as per the terminology guidelines.


  • [30918] Non-public note is visible in OPAC in Title Notes tab

    This fixes the display of nonpublic notes (583$x) in the OPAC. Before this, if the OPAC visibility setting in the framework for 583$x was set not to show, it was still showing.


  • [30327] Sort component parts
  • [30865] Koha::Biblio->get_components_query should double quote Host-item search

Searching – Elasticsearch

  • [25669] ElasticSearch 6: [types removal] Specifying types in put mapping requests is deprecated (incompatible with 7)
  • [30152] Elasticsearch – queries with OR don’t work with limits

    Sponsored by Lund University Library

  • [31013] Reserved words as branchcodes cause search error in Elasticsearch


  • [24010] Number of issues to display to staff accepts non-integer values

    This adds validation to the subscription entry form to check that the values for these fields are numbers:

    • Number of issues to display to staff
    • Number of issues to display to the public

Staff Client

  • [31038] Amounts in cashup summary modal no longer properly formatted

    This fixes the formatting of amounts on the cashup summary modal (it uses the existing format_price JS include to format prices). For example, the amount for a product was formatted as 15 instead of 15.00.

  • [31067] Sub-tools permission not applying on intranet-main.tt

System Administration

  • [31117] Cloning standard circulation rules for all libraries show up as from ‘*’


  • [20395] Use Price formatter in more templates (paycollect, request, parcel, smart-rules)
  • [30762] Terminology: Go to Staff client
  • [30763] Typo: Barcode proceeds bibliographic data
  • [30764] Terminology: Cancelled reserve

    Sponsored by Catalyst

  • [30766] Typo: Cannot cancel receipt. Possible reasons :
  • [30767] Terminology: Do not forget that the issue has not been checked in yet.

    Sponsored by Catalyst

  • [30769] Typo: Item typeX:
  • [30770] Terminology: Lost reserve

    Sponsored by Catalyst

  • [30773] Standardize spelling i-tive / Itiva

    This standardizes the spelling used for i-tiva in the staff interface. When modifying notices (Tools > Notices & slips > [select any notice]) the section is now labelled ‘Phone ( i-tiva )’ – this is now consistent with the table heading used for Tools > Overdue notice/status triggers.

  • [30784] Rephrase OPACMandatoryHoldDates slightly

    This updates the text for the OPACMandatoryHoldDates system preference. It replaces the URL for the form (opac-reserve) with a description, formats the note similar to other notes, and links to other system preferences mentioned in the description.

  • [30990] Terminology: DefaultHoldPickupLocation
  • [30994] Typo: item was on loan. couldn’t be returned.

    This updates some error messages for the inventory tool to make them more readable and consistent: punctuation fixed, capitalization made more consistent, and language corrections (“check in” instead of “return”).

  • [31040] jsTree image being used outside of jsTree plugin

    This fixes OPAC templates which had a missing “spinner” image when queries were being performed (such as for OpenLibrary, RecordedBooks, and OverDrive). Previously, they were using an image from the jsTree plugin – this was upgraded (see bug 11873), and the plugin’s folder structure was changed. Templates now use /images/spinner-small.gif instead.

  • [31071] Regression: date due removed from staff search results

    This fixes a regression introduced in Koha 21.11 that inadvertently removed the date due in the staff interface search results.


  • [30903] CSV import of quotes broken

    This fixes the import of quotes from a CSV file for the Quote of the Day feature.

  • [30911] Datatables error on course-details.pl after adding a bib-level course reserve
  • [31066] Can’t use regex in batch modification on fields associated with a plugin
  • [31220] Error when attempting to export selected labels as PDF

New system preferences

  • ComponentSortField
  • ComponentSortOrder


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

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 (78.4%)
  • Armenian (100%)
  • Armenian (Classical) (71.6%)
  • Bulgarian (84.9%)
  • Chinese (Taiwan) (82.7%)
  • Czech (62.3%)
  • English (New Zealand) (56.4%)
  • English (USA)
  • Finnish (95.6%)
  • French (97.1%)
  • French (Canada) (99.7%)
  • German (100%)
  • German (Switzerland) (54.4%)
  • Greek (53.3%)
  • Hindi (100%)
  • Italian (96.2%)
  • Nederlands-Nederland (Dutch-The Netherlands) (79.1%)
  • Norwegian BokmÃ¥l (55.7%)
  • Polish (87.5%)
  • Portuguese (79.7%)
  • Portuguese (Brazil) (77.2%)
  • Russian (78.1%)
  • Slovak (64.1%)
  • Spanish (98%)
  • Swedish (77.3%)
  • Telugu (85.2%)
  • Turkish (90.7%)
  • Ukrainian (69.9%)

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 22.05.04 is

  • Release Manager: Tomás Cohen Arazi
  • Release Manager assistants:
    • Jonathan Druart
    • Martin Renvoize
  • QA Manager: Katrin Fischer
  • QA Team:
    • Aleisha Amohia
    • Nick Clemens
    • Jonathan Druart
    • Lucas Gass
    • Victor Grousset
    • Kyle M Hall
    • Joonas Kylmälä
    • Andrew Nugged
    • Martin Renvoize
    • Marcel de Rooy
    • Fridolin Somers
    • Petro Vashchuk
  • Topic Experts:
    • UI Design — Owen Leonard
    • Zebra — Fridolin Somers
  • Bug Wranglers:
    • Aleisha Amohia
    • Jake Deery
    • Lucas Gass
    • Séverine Queune
  • Packaging Manager:
  • Documentation Manager: David Nind
  • Documentation Team:
    • Donna Bachowski
    • Aude Charillon
    • Martin Renvoize
    • Lucy Vaux-Harvey
  • Translation Managers:
    • Bernardo González Kriegel
  • Wiki curators:
    • Thomas Dukleth
    • Katrin Fischer
  • Release Maintainers:
    • 22.05 — Lucas Gass
    • 21.11 — Arthur Suzuki
    • 21.05 — Victor Grousset


We thank the following libraries, companies, and other institutions who are known to have sponsored
new features in Koha 22.05.04

We thank the following individuals who contributed patches to Koha 22.05.04

  • Aleisha Amohia (1)
  • Tomás Cohen Arazi (8)
  • Florian Bontemps (2)
  • Alex Buckley (1)
  • Kevin Carnes (2)
  • Nick Clemens (16)
  • David Cook (2)
  • Nisha Dahya (1)
  • Jonathan Druart (10)
  • Magnus Enger (1)
  • Katrin Fischer (4)
  • Lucas Gass (14)
  • Evan Giles (1)
  • Kyle M Hall (1)
  • Mason James (1)
  • Pasi Kallinen (1)
  • krisw (2)
  • Owen Leonard (12)
  • David Nind (4)
  • Martin Renvoize (13)
  • Marcel de Rooy (1)
  • Caroline Cyr La Rose (1)
  • Danyon Sewell (2)
  • Fridolin Somers (2)
  • Logan Symons (1)
  • Mark Tompsett (1)
  • Koha translators (1)
  • Karen Turner (1)
  • Petro Vashchuk (2)
  • Filip Vujičić (1)
  • Tosca Waerea (1)

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

  • Athens County Public Libraries (12)
  • BibLibre (4)
  • Bibliotheksservice-Zentrum Baden-Württemberg (BSZ) (4)
  • ByWater-Solutions (31)
  • Catalyst (11)
  • Catalyst Open Source Academy (1)
  • David Nind (4)
  • Independant Individuals (3)
  • Koha Community Developers (10)
  • KohaAloha (1)
  • Libriotech (1)
  • Prosentient Systems (2)
  • PTFS-Europe (13)
  • Rijksmuseum (1)
  • Solutions inLibro inc (1)
  • The City of Joensuu (1)
  • Theke Solutions (8)
  • ub.lu.se (2)

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

  • Tomás Cohen Arazi (89)
  • Emmanuel Bétemps (2)
  • Nick Clemens (6)
  • Chris Cormack (9)
  • Roch D’Amour (1)
  • Jonathan Druart (11)
  • Katrin Fischer (24)
  • Lucas Gass (98)
  • Victor Grousset (3)
  • Kyle M Hall (7)
  • Sally Healey (6)
  • Bernardo González Kriegel (1)
  • Owen Leonard (3)
  • Julian Maurice (3)
  • David Nind (37)
  • Martin Renvoize (25)
  • Marcel de Rooy (4)
  • Fridolin Somers (7)

We regret any omissions. If a contributor has been inadvertently missed,
please send a patch against these release notes to koha-devel@lists.koha-community.org.

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 rmain2205.

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 22 Aug 2022 21:26:48.