Omega 2.1.0 (2026-08-13): general: * Switch to using only spaces to indent most source files. The old identation style apparently isn't supported by some editors and proved a repeated pain point with GSoC contributors. A small number of files which are imported from elsewhere are left with whatever indentation style the original uses in case we want to update them. Fixes #787, reported by Germán M. Bravo. documentation: * Fix minor typo. indexers: * omindex: + Fix incorrect internal protocol use in gepub and poppler workers. These both sent two FIELD_ERROR messages for certain cases related to loading a file. Only one FIELD_ERROR is expected so this would result in the next file processed by the same worker failing with an error, and then the protocol would be one document out of step. + Modern `.ai` files are now indexed. Previously we assumed `.ai` files were all PostScript, but newer `.ai` files are actually PDF files so we now let libmagic determine their underlying type. + New worker module for PostScript files which uses libspectre to convert PostScript to a temporary PDF file, then libpoppler to extract text from that PDF file. The libspectre library uses ghostscript as a library, so this should give equivalent results to using ps2pdf then pdftotext, but with less overhead. We require libspectre >= 0.2.12 (older versions had a bug which broke saving as a PDF file). + Fix memory leak on error in libreofficekit worker. We need to free the error message. The method to do this was only added in LibreOffice 5.2, but that was released 10 years ago so that's the new minimum requirement. + Improve error message from libreofficekit worker if export to HTML fails. omega: * Fix date term filter for SPAN without START/END. In this case we're meant to use now as the end of the range, but were actually using the start of 1970. The value range filter case was unaffected by this bug. Fixes #853, reported by Darrin Smart. build system: * New cleaner approach to resolving RST includes. To support out-of-tree builds we effectively want to be able to specify an include path for RST files, but sphinx doesn't seem to support this. We now address this using a Perl one-liner to rewrite the path on `.. include::` directives on the fly, rather than substituting the included file's contents in place of the directive. * Remove unused automake condition `VPATH_BUILD`. * Update cdb code to be based on upstream 0.81. Use wordaccess.h which gives more optimised code for loading an unaligned little-endian 32-bit word on some platforms. portability: * configure: `-Wstrict-overflow=1` is no longer added to the default compiler options for GCC and clang. This option has been a no-op since GCC 8 (and has always been a no-op for clang, provided only for GCC compatibility). Patch from Sergei Trofimovich. * Remove some Python2 compatibility code. * configure.ac: Use $SED consistently to improve portability to platforms where the installed sed tool isn't just called `sed`. Omega 2.0.0 (2026-03-16): general: * Add support for result click logging and analysis to generate training data for the xapian-letor module. Configure with `--enable-clickstream` to get the extra programs and scripts installed. Patch from Vivek Pal. * Remove htdig2omega scripts. The last htdig release was in 2004 so these scripts no longer seem at all useful. (Note that omindex still supports htdig's ... markup of sections of pages not to index.) documentation: * docs/overview.rst: Clarify handling of .doc files. Highlighted by Karel Pičman. indexers: * Our XML and HTML parser now treats XML (and XHTML) more correctly rather than treating everything like HTML. We now parse XML and XHTML tag names and attribute names case sensitively. Special handling for htdig and similar "ignore this bit" comments is now only active for HTML and XHTML. Special handling inside