Go to file
Martin Renvoize 2f1eb2db84
Bug 43078: Unify file transport list_files() across FTP, Local and SFTP
Net::SFTP::Foreign's ls() returned file metadata with size, permissions
and modification time nested inside a Net::SFTP::Foreign::Attributes
object, while FTP and Local returned flat hash keys and silently
dropped directories. Callers of list_files() needed backend-specific
parsing to get at file metadata or to know a directory even existed,
defeating the purpose of the shared transport API.

All three transports now return the same flat hashref shape per entry:
filename, longname, size, perms, mtime, type ('file'/'directory'/
'other'). Directories are included everywhere; '.' and '..' remain
excluded everywhere. FTP's MLSD path prefers the UNIX.mode fact for
exact Unix permissions, falling back to an approximation from the RFC
3659 perm capability fact when UNIX.mode isn't available, and parses
the modify fact into mtime; its NLST fallback (servers without MLSD)
probes each entry with SIZE/MDTM to recover size, mtime and a
best-effort type.

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2026-09-14 14:21:41 -06:00
.github/workflows Bug 40027: Use GitHub workflow to automatically close PRs opened on the Koha repo there 2025-10-06 09:15:26 -06:00
C4 Bug 42827: Restore values to the Items expected column in parcels.pl 2026-09-14 14:21:35 -06:00
Koha Bug 43078: Unify file transport list_files() across FTP, Local and SFTP 2026-09-14 14:21:41 -06:00
acqui Bug 42225: (QA follow-up) Use configured unitprice field in outer SELECT 2026-08-10 14:56:44 -06:00
admin Bug 29587: Test mail option in SMTP servers 2026-06-15 18:12:16 -06:00
api Bug 42845: Add ILL config endpoint for Vue app 2026-09-14 14:21:26 -06:00
authorities Bug 21453: Copy data to the correct subfields when linking authorities with authorities 2026-04-23 09:24:58 -06:00
basket Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
bin Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
bookings Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
catalogue Bug 42637: Check if biblio exists before checking if it is fast add 2026-05-18 16:05:41 -06:00
cataloguing Bug 42512: Pass already checked/cleaned MARC::Record to Metadata Extractor 2026-08-10 14:56:44 -06:00
circ Bug 42930: Replace title with borrowertitle 2026-08-13 08:53:22 -06:00
clubs Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
course_reserves Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
debian Bug 43159: Restore localisation of PERL5LIB and KOHA_HOME 2026-09-14 14:21:38 -06:00
docs Bug 42726: Add 26.11 release team 2026-06-08 13:53:09 -06:00
erm Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
errors Bug 28146: Respect ReplytoDefault in error pages 2025-10-09 14:58:41 -06:00
etc Bug 37762: VueJS ILL Module 2026-05-08 12:25:38 -06:00
ill Bug 37762: Circulation: Hook to checkouts/checkins 2026-05-08 12:25:43 -06:00
installer Increment version for 26.05.03.000 release 2026-08-26 10:34:47 +10:00
koha-tmpl Bug 43192: Cast escape_str(obj) arg to string to use escapeHtml func 2026-09-14 14:21:40 -06:00
labels Bug 42764: Fix spelling errors across the codebase 2026-06-11 09:53:34 -06:00
lib Bug 41521: Silent perlcritic warnings 2026-03-24 09:55:54 +01:00
members Bug 42396: Remove C4::Stats::UpdateStats and delete module 2026-09-14 09:08:29 -06:00
misc Bug 41681: (follow-up) Fix record number count when broken records are processed 2026-09-14 09:08:31 -06:00
offline_circ Bug 42396: Remove C4::Stats::UpdateStats and delete module 2026-09-14 09:08:29 -06:00
opac Bug 41084: Allow utf8 export format when EnableZotero is enabled 2026-08-11 08:23:31 -06:00
patron_lists Bug 32176: Remove duplicated code to select patron from autocomplete 2025-10-31 15:26:25 -06:00
patroncards Bug 42747: (QA follow-up) Parameterize query, dedupe, and log rejections 2026-08-10 08:18:10 -06:00
plugins Bug 25952: Skip invalid repositories when searching for plugins 2025-11-21 08:41:52 -07:00
pos Bug 41819: (follow-up) Reject 'AC' refunds for anonymous transactions server-side 2026-08-10 14:56:43 -06:00
preservation Bug 35267: Apply preferences to preview and mailing 2026-04-17 09:18:06 -06:00
recalls Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
reports Bug 42736: Prevent SQL injection in reports/cat_issues_top.pl 2026-08-26 10:34:47 +10:00
reserve Bug 42999: Fix $valid_items flag contamination in reserve/request.pl 2026-08-11 08:23:28 -06:00
reviews Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
rotating_collections Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
serials Bug 40201: Add addidtional fields to subscription search on serials home 2026-09-14 14:21:33 -06:00
services Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
sip2 Bug 37893: Fix http links 2025-11-18 11:21:20 -07:00
skel
…
suggestion Bug 42919: Retain suggestion form values when duplicate warning is shown 2026-08-10 15:52:51 -06:00
svc Bug 42084: (QA follow-up) Simplify 2026-06-08 13:53:12 -06:00
t Bug 43078: Unify file transport list_files() across FTP, Local and SFTP 2026-09-14 14:21:41 -06:00
tags Bug 42254: (QA follow-up) Remove unused var, fixing a FIXME 2026-04-28 15:48:24 -06:00
tools Bug 41358: Apply consistent JSON logging to holds (Bug 40866) 2026-08-10 14:56:42 -06:00
virtualshelves Bug 40916: Fix another occurance 2025-10-06 09:15:22 -06:00
xt Bug 42886: Add missing rtl 2026-08-10 15:52:43 -06:00
.codespell-ignore Bug 42764: Fix false positives caused by POD letter-code formatting 2026-06-11 09:53:35 -06:00
.editorconfig Bug 27375: Set YAML file settings in .editorconfig 2021-11-03 15:40:52 +01:00
.git-blame-ignore-revs Bug 39096: Add 'tidy all' commits to a git blame ignore file 2025-02-17 13:10:25 +01:00
.gitignore Bug 26355: Add a Vue island for the self-renewal modal 2026-05-01 09:30:00 -06:00
.htaccess
…
.mailmap Bug 40041: (follow-up) Fix periods and add Robert Fox 2025-12-05 09:29:04 -07:00
.nvmrc Bug 42353: Store the node version in .nvmrc 2026-04-15 09:14:53 -06:00
.perlcriticrc Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
.perltidyrc Bug 30002: Adjust perltidy 2023-06-08 08:32:42 -03:00
.prettierrc.js Bug 38664: Treat .vue files like other JS files 2025-02-11 14:58:25 +01:00
.proverc.dist Bug 19821: Install sample data, ES mappings and Version syspref 2021-10-25 11:27:40 +02:00
.stylelintrc.json Bug 31528: (follow-up) A few additional rules 2022-10-03 08:23:15 -03:00
INSTALL
…
Koha.pm Increment version for 26.05.03.000 release 2026-08-26 10:34:47 +10:00
LICENSE Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
MANIFEST.SKIP
…
Makefile.PL Bug 43401: (QA follow-up) tweak rspack.config.js comment and fix Makefile.PL 2026-09-14 09:08:35 -06:00
README
…
README.md Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
README.robots
…
SECURITY.md Bug 40527: Initial draft of SECURITY.md 2025-10-09 14:58:41 -06:00
about.pl Bug 42453: Remove warning 2026-07-13 16:10:30 -06:00
app.psgi Bug 38365: Integrate CSP middleware into Plack apps 2026-03-16 11:57:12 +01:00
build-resources.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
changelanguage.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
cpanfile Bug 41717: Bump PDF::Reuse and PDF::Reuse::Barcode versions 2026-09-14 14:21:32 -06:00
cypress.config.ts Bug 41362: Allow Cypress tests to use KOHA_USER and KOHA_PASS as override 2026-01-06 07:45:35 -07:00
eslint.config.mjs Bug 38524: Enable ESLint for .ts and .vue files 2025-01-16 15:56:17 +01:00
fix-perl-path.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
gulpfile.js Bug 42356: Silence Sass if-function deprecation warning 2026-04-17 09:18:15 -06:00
help.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
kohaversion.pl Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
mainpage.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
package.json Bug 34973: Upgrade Font Awesome in the OPAC to 7.2 2026-06-04 15:09:08 -06:00
rewrite-config.PL Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
rspack.config.js Bug 43401: (QA follow-up) tweak rspack.config.js comment and fix Makefile.PL 2026-09-14 09:08:35 -06:00
tsconfig.json Bug 32030: Move cypress to t - fix build_js/watch_js 2022-11-08 09:44:52 -03:00
yarn.lock Bug 34973: Update yarn.lock 2026-06-09 15:42:19 -06:00

README.md

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit https://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

https://koha-community.org/

Koha Logo