From a3caf520255cecda9a996ff9f622503646d21f33 Mon Sep 17 00:00:00 2001 From: Olly Betts Date: Mon, 6 Nov 2023 17:25:40 +1300 Subject: [PATCH] Update for release 1.4.24 --- xapian-applications/omega/NEWS | 20 +++--- xapian-applications/omega/configure.ac | 2 +- xapian-bindings/NEWS | 80 +++++++-------------- xapian-bindings/configure.ac | 2 +- xapian-core/AUTHORS | 1 + xapian-core/NEWS | 123 +++++++++++++++++++-------------- xapian-core/configure.ac | 5 +- 7 files changed, 111 insertions(+), 122 deletions(-) diff --git a/xapian-applications/omega/NEWS b/xapian-applications/omega/NEWS index d667611bd..b82a5e0ce 100644 --- a/xapian-applications/omega/NEWS +++ b/xapian-applications/omega/NEWS @@ -1,8 +1,4 @@ -up to: ccac01bb92799daa7777c8a19b92db5ffd537589 - -Omega 1.4.24 (2023-08-06): - -general: +Omega 1.4.24 (2023-11-06): documentation: @@ -16,6 +12,14 @@ indexers: the filter was run but the input wasn't connected to its stdin so it would probably block indefinitely. + + Fix corner case in shell emulation - we no longer set environment variables + which start with a digit. + + This issue was spotted from reading the code - in practice this isn't a + case that's likely to be encountered, and the previous behaviour doesn't + appear to have any security consequences even if a user was somehow tricked + into specifying an extraction command did this. + * scriptindex: + Check if we can actually support %z in parsedate action. Previously we @@ -34,10 +38,6 @@ indexers: where '...' shows the sequence of non-whitespace characters encountered. -omega: - -templates: - testsuite: * Run tests under eatmydata if available. @@ -65,8 +65,6 @@ portability: * Rename our bswap32 helper function to avoid clash with system-provided function on FreeBSD and NetBSD. -packaging: - Omega 1.4.23 (2023-07-07): documentation: diff --git a/xapian-applications/omega/configure.ac b/xapian-applications/omega/configure.ac index d3177299c..128cd4784 100644 --- a/xapian-applications/omega/configure.ac +++ b/xapian-applications/omega/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -m4_define([project_version], [1.4.23]) +m4_define([project_version], [1.4.24]) AC_INIT([xapian-omega], project_version, [https://xapian.org/bugs]) AC_PREREQ([2.63]) AM_INIT_AUTOMAKE([1.11 -Wportability subdir-objects tar-ustar no-dist-gzip dist-xz]) diff --git a/xapian-bindings/NEWS b/xapian-bindings/NEWS index 4a5f76a9c..247221710 100644 --- a/xapian-bindings/NEWS +++ b/xapian-bindings/NEWS @@ -1,71 +1,43 @@ -up to: 0870f499f628e2554d63b9a206baf598b0d16267 - -Xapian-bindings 1.4.24 (2023-08-01): - -Documentation: - -General: - -Packaging: +Xapian-bindings 1.4.24 (2023-11-06): Portability: - swig-depcomp: Strip CR from generated files - This fixes an issue in some cases when building from git on Microsoft - Windows. - -CSharp: - -Java: +* swig-depcomp: Strip CR from generated files which fixes an issue in some + cases when building from git on Microsoft Windows. Lua: - Use pkg-config for Lua flags - This eliminates some rather ad-hoc configure probes, and improves - portability as it now works on platforms which require linking to - a Lua library, or which install the Lua headers directly without - a versioned containing directory. - -Perl: +* Use pkg-config for Lua flags instead of some rather ad-hoc configure probes. + This improves portability to platforms which require linking to a Lua + library, or which install the Lua headers directly without a versioned + containing directory. PHP8: - Update configure probe PHP_LIBS on cygwin - Based on patch found in cygwin packaging, authored by Yaakov Selkowitz: - https://cygwin.com/cgit/cygwin-packages/xapian-bindings/tree/1.2.12-php.patch +* Update configure probe PHP_LIBS on cygwin. Based on patch found in cygwin + packaging, authored by Yaakov Selkowitz. -Python: +Tcl: -Python3: +* Fix to handle the case of tcl_pkgPath not existing, which happens on + Microsoft Windows builds of Tcl. -Ruby: +* run-tcl-test: Fix not to hardcode smoketest.tcl and instead run the program + specified on the command line. -Tcl: +* Use TCL_SHLIB_EXT for the installed extension which is what Tcl expects. + Previously the installed Tcl extension used the filename extension that + libtool thinks is right for modules on the current platform. We're not + currently aware of platform where these actually differ, so this may be just + a latent bug. + +* Improve configure probe for stub library to work if the tclConfig.sh we find + forwards to a different script, as is the case with /usr/lib/tclConfig.sh on + current Debian. On Debian at least our method for finding the tclConfig.sh + to use doesn't find such a forwarding script, but it seems better to be + robust to this. - [Tcl] Fix to handle tcl_pkgPath not existing - It's not there on Microsoft Windows builds of Tcl. - - run-tcl-test: Fix not to hardcode smoketest.tcl - Actually run the program specified on the command line. - - [Tcl] Use TCL_SHLIB_EXT for the installed extension - Previously the installed Tcl extension used the filename extension - that libtool thinks is right for modules on the current platform, - but now we use the extension Tcl expects. I'm not currently aware - of platform where these actually differ, so this may be just a - latent bug. - - [Tcl] improve configure probe for stub library - The probe now works if the tclConfig.sh we find forwards to a - different script, as is the case with /usr/lib/tclConfig.sh on - current Debian. On Debian at least our method for finding the - tclConfig.sh to use doesn't find such a forwarding script, but - it seems better to be robust to this. - - Eliminate special cygwin handling for Tcl - No longer needed according to: - https://cygwin.com/cgit/cygwin-packages/xapian-bindings/tree/1.2.17-tcl.patch - (cherry picked from commit 01dc8a67405cf4048f05ac93039c72e4cf323b2e) +* Eliminate special cygwin handling which is no longer needed. Xapian-bindings 1.4.23 (2023-07-07): diff --git a/xapian-bindings/configure.ac b/xapian-bindings/configure.ac index 4c42c597f..12c4ce990 100644 --- a/xapian-bindings/configure.ac +++ b/xapian-bindings/configure.ac @@ -4,7 +4,7 @@ dnl See xapian-core's HACKING document for details of the reasons for required dnl versions. AC_PREREQ([2.63]) -m4_define([project_version], [1.4.23]) +m4_define([project_version], [1.4.24]) AC_INIT([xapian-bindings], project_version, [https://xapian.org/bugs]) dnl See xapian-core's HACKING document for details of the reasons for required diff --git a/xapian-core/AUTHORS b/xapian-core/AUTHORS index dbd19662c..60e978208 100644 --- a/xapian-core/AUTHORS +++ b/xapian-core/AUTHORS @@ -274,3 +274,4 @@ Helpful comments, bug reports, small patches: Gennadiy Eduard Panov Uwe Kleine-König + Yaakov Selkowitz diff --git a/xapian-core/NEWS b/xapian-core/NEWS index 9b9235942..f4d0782f4 100644 --- a/xapian-core/NEWS +++ b/xapian-core/NEWS @@ -1,37 +1,42 @@ -up to: 45dae89ffb9ce03e1652f64e777940c833259ad7 - -Xapian-core 1.4.24 (2023-08-06): +Xapian-core 1.4.24 (2023-11-06): +testsuite: -API: +* apitest: Add coverage that docids generated by replace_document() don't wrap + to nomoredocids1 testcase. +* unittest: Improve block file functions unit test which were (unintentionally) + trying to test with a 4TB sparse file, which not all platforms support. A + file just over 4GB is enough to test what we want, and if we trying to create + one fails with errno EFBIG, indicating the file size is too large, we now + skip the rest of the testcase. -testsuite: +* unittest: Catch Xapian::Error exceptions and rethrow the std::string returned + by get_description() as the utestsuite harness doesn't know about + Xapian::Error so was confusingly reporting it as "UNKNOWN EXCEPTION". -* unittest: Improve block file functions unit test. - We were (unintentionally) trying to test with a 4TB sparse file, but - not all platforms support that. A file just over 4GB is enough to - test what we want, and if we trying to create one fails indicating - the file size is too large (with errno EFBIG) then we skip the rest of - the testcase. - Also catch Xapian::Error exceptions and rethrow a std::string from - get_description() as the utestsuite harness doesn't know about - Xapian::Error so confusingly reports it as "UNKNOWN EXCEPTION". +* The testsuite no longer reports NULL as the address associated with a + signal when running on a platform without both sigaction() and SA_SIGINFO. matcher: +* Reorder fields in each MSet entry to avoid structure padding on x86-64 + probably other 64-bit platforms. This reduces the memory needed to hold an + MSet by 8 bytes per entry on such platforms. glass backend: +* Eliminate unnecessary memory allocations. When committing changes, we were + allocating blocks for all possible levels of the built-in cursor in each + writable table, even those levels that weren't in use. -chert backend: - - -remote backend: - - -inmemory backend: + The worst case is a really small database with all optional tables existing + which would have 54 unused allocations of blocksize + 8 bytes, which with the + default 8K block size is ~432KB per WritableDatabase; if you explicitly ask + for 64K block size it'll be ~3.4MB. + For a more typical WritableDatabase it's probably going to be more like half + these numbers. build system: @@ -40,50 +45,62 @@ build system: * configure: Only auto-enable -D_FORTIFY_SOURCE=2 if it works without additional libraries and remove the hard-coded block against using it on mingw. Mingw-w64 v11.0.0 eliminated the requirement to link with -lssp - so we now auto-enable -D_FORTIFY_SOURCE=2 there. - -documentation: - - -tools: - - -examples: - + and with this change we now auto-enable -D_FORTIFY_SOURCE=2 for it. portability: - Avoid MSVC warning C4312 - This is a reasonable warning in general, but in this case we checked - that the value wasn't truncated when cast to an int. - - Use TEST_EQUAL_DOUBLE in netstats1 testcase - Fixes testcase failure on freebsd. - - Address GCC13 -Wredundant-move warnings - These std::move() were added in e23164b4ddb6cdc57136f4da2598d831f3780035 - to fix clang warnings from -Wreturn-std-move (enabled by -Wall). Just - removing the std::move() reintroduces those warning with clang 8 and - clang 11 (but not clang 13 or later) but changing to apply a static_cast - to the returned type seems to make all versions of both compilers happy. +* We now avoid triggering SIGPIPE in library code on most platforms. + + On Unix-like platforms we want to avoid generating SIGPIPE when writing to a + socket when the other end has been closed since signals break the + encapsulation of what we're doing inside the library - either user code would + need to handle the SIGPIPE, or we set a signal handler for SIGPIPE but that + would handle *any* SIGPIPE in the process, not just those we might trigger, + and that could break user code which expects to trigger and handle SIGPIPE. + + We don't need SIGPIPE since we can check errno==EPIPE instead (which is + actually simpler to do). + + It seems all current Unix-like platforms now support SO_NOSIGPIPE or + MSG_NOSIGNAL, so currently we just fall back to setting SIGPIPE to SIG_IGN. + If there are actually current platforms which have SIGPIPE without + SO_NOSIGPIPE or MSG_NOSIGNAL then we can look at other ways to avoid + generating the signal. + +* Avoid MSVC warning C4312 which is a reasonable warning in general, but in + this case we checked that the value wasn't truncated when cast to an int. + +* Use TEST_EQUAL_DOUBLE in netstats1 testcase which fixes testcase failure on + FreeBSD. + +* Address GCC13 -Wredundant-move warnings. In 1.4.10 we added std::move() + here to address clang warnings from -Wreturn-std-move (enabled by -Wall). + Just removing the std::move() reintroduces those warning with clang 8 and + clang 11 (but not clang 13 or later) but changing to apply a static_cast + to the returned type seems to make all versions of both compilers happy. * Fix build with UCRT64 variant of mingw-w64 by stopping defining __MSVCRT_VERSION__ by default. It looks like doing so hasn't been needed since 2015. - Add workaround for testsuite failures under Wine - Attempting to unlink a stub file sometimes fails with - errno == EACCES and _doserrno == ERROR_SHARING_VIOLATION. This is - what you'd get if the file was still open, but we've already closed - it and sleeping for a second and retrying makes it work. It'd be - better to get to the bottom of what's going on, but I've run out - of ideas and this workaround is only in the testharness at least. +* Add workaround for testsuite failures under Wine where attempting to unlink a + stub file sometimes fails with errno == EACCES and _doserrno == + ERROR_SHARING_VIOLATION. This is what you'd get if the file was still open, + but we've already closed it. Sleeping for a second and retrying makes it + work, so we now do that. It'd be better to get to the bottom of what's going + on, but I've run out of ideas and this workaround is only in the testharness + at least. -packaging: +debug code: +* xapian-inspect: -debug code: + + `goto` and `until` now go to the entry *after* the specified key if there's + no exact match, which seems more natural. + + New `count" command. This is actually just the same as `until` which + already reports a count of the number of entries advanced by, except that + `count` suppresses printing each entry. Xapian-core 1.4.23 (2023-07-07): diff --git a/xapian-core/configure.ac b/xapian-core/configure.ac index d47b1037d..3121ec723 100644 --- a/xapian-core/configure.ac +++ b/xapian-core/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. dnl NB When updating the version for a release, update LIBRARY_VERSION_INFO dnl below too. -AC_INIT([xapian-core], [1.4.23], [https://xapian.org/bugs]) +AC_INIT([xapian-core], [1.4.24], [https://xapian.org/bugs]) dnl See HACKING document for details of the reasons for required versions. AC_PREREQ([2.64]) dnl Extract from the libtool info manual: @@ -54,7 +54,8 @@ dnl 42:1:12 1.4.20 No API changes dnl 42:2:12 1.4.21 No API changes dnl 42:3:12 1.4.22 No API changes dnl 42:4:12 1.4.23 No API changes -LIBRARY_VERSION_INFO=42:4:12 +dnl 42:5:12 1.4.24 No API changes +LIBRARY_VERSION_INFO=42:5:12 AC_SUBST([LIBRARY_VERSION_INFO]) LIBRARY_VERSION_SUFFIX= -- 2.11.4.GIT