--- - branch: MAIN date: Sun Jan 2 09:31:20 UTC 2022 files: - new: '1.15' old: '1.14' path: pkgsrc/textproc/xapian/Makefile.common pathrev: pkgsrc/textproc/xapian/Makefile.common@1.15 type: modified - new: '1.45' old: '1.44' path: pkgsrc/textproc/xapian/distinfo pathrev: pkgsrc/textproc/xapian/distinfo@1.45 type: modified id: 20220102T093120Z.916640dd04264799dcd69079c3f7f87c45ac3bcf log: "Update to 1.4.19. From the changelog:\n\nAPI:\n\n* New QueryParser::FLAG_NO_POSITIONS flag. With this flag enabled, any query\n operations which would use positional information are replaced by the nearest\n equivalent which doesn't (so phrase searches, NEAR and ADJ will result in\n OP_AND). This is intended to replace the automatic conversion of OP_PHRASE,\n etc to OP_AND when a database has no positional information, which will no\n longer happen in the release series after 1.4.\n\n* Give a compile error for code which adds a Database to WritableDatabase.\n\n \ Prior to 1.4.19, this compiled and effectively created a \"black-hole\" shard\n \ which quietly discarded any changes made to it.\n\n In 1.4.19 it's still possible to perform this operation by assigning the\n WritableDatabase to a Database first, which is harder to fix. This case\n throws an exception on git master where it's easier to address.\n\n Reported by David Bremner on #xapian.\n\n* Fix TermIterator::skip_to() with sharded databases which sometimes was\n failing to advance all the way to the requested term. Uncovered while\n addressing warning from GCC's -Wduplicated-cond, reported by dcb in #816.\n\n* Clamp edit distance to one less than the length of the word we've been asked\n to correct, which makes the algorithm we use more efficient. We already\n require suggestion to have at least one character in common, so the only\n change to suggestions is we'll no longer suggest corrections which are\n twice as long or longer even if the edit distance would allow it, which\n seems like an improvement in itself.\n\n* Minor optimisation expanding wildcards.\n\n* PostingIterator::get_description(): For an all-docs iterator on a glass\n database, get_description() would call get_docid() which isn't valid to\n do once the iterator has reached the end.\n\ntestsuite:\n\n* Expand allterms test coverage.\n\nmatcher:\n\n* Fetch wdf upper bound from postlist which avoids an extra postlist table\n cursor seek per weighted query term, and also means we now use a per-shard\n wdf upper bound for local shards which will in typically give a tighter\n weight upper bound which will tend to make various other matcher\n \ optimisations more effective. Eric Wong reported this speeds up a\n particularly slow case from ~2 minutes to ~3 seconds.\n\n With this change, OP_ELITE_SET can now select a different subset of terms for\n each shard regardless of shard type (previously this only happened for remote\n shards).\n\n* Avoid triggering a pointless maximum weight recalculation if an unweighted\n child of a MultiAndPostList prunes.\n\n* Only check if the database has positional information when the query\n \ uses positional information. This should help improve notmuch delete\n performance. \ Thanks to andreas on #notmuch for analysis of the problem.\n\nglass backend:\n\n* Optimise Glass::Inverter::has_positions(). Use const auto& instead of just\n \ auto for the loop variables. Reported to be faster by andreas on #notmuch.\n\n* Cache result of Glass::Inverter::has_positions() since calculating it is\n potentially very expensive, while maintaining a cached answer is very cheap.\n\nremote backend:\n\n* Add missing closing parenthesis to reported remote prog context, which has\n been missing since this code was first added over 20 years ago! Spotted by\n Gaurav Arora.\n\nbuild system:\n\n* Enable compiler option -fno-semantic-interposition if supported.\n\n This GCC option allows the compiler to optimise essentially assuming\n that functions/variables aren't replaced at dynamic link time.\n\n \ Such replacement is not something that it's useful to do for Xapian\n symbols, and we already turn on -Bsymbolic-functions by default which\n prevents such replacement anyway by resolving references within the\n library at build time.\n\n \ Reduces the size of the stripped library on x86-64 Debian unstable by\n ~1%, and likely makes it faster too.\n\n* Avoid bogus deprecation warning when compiling with GCC without optimisation.\n In this situation, GCC emits a deprecation warning for code in the definition\n of QueryParser::add_valuerangeprocessor() which is provided for backwards\n API compatibility even if this method is never used anywhere.\n\n This isn't helpful, especially if the user is using -Werror, so disable the\n -Wdeprecated-deprecations warning for this code.\n\n Reported by starmad on #xapian.\n\n* Fix GCC -Wmaybe-uninitialized warning. The warning seems bogus as it's about\n the this pointer being passed to a method which doesn't reference the object,\n but we can just make the method static to avoid the warning, and that's\n arguably cleaner for a method called from the object initialiser list.\n\n* Automatically enable GCC warnings -Wduplicated-cond and -Wduplicated-branches\n \ if using a GCC version new enough to support them. The usefulness of\n -Wduplicated-cond was highlighted by dcb in #816.\n\n* Replace uses of obsolete autoconf macros, fixing warnings if configure is\n regenerated with a recent release of autoconf.\n\n* Simplify configure probe for sigsetjmp and siglongjmp. Just probe\n individually with AC_CHECK_DECLS and then check that both exist with a\n preprocessor check.\n\n* Update XO_LIB_XAPIAN to fix warning that AC_ERROR is obsolete with modern\n autoconf.\n\n* Support linking against static libxapian with cmake. Patch from Anonymous\n Maarten in https://github.com/xapian/xapian/pull/317\n\n* Clean up handling of libs we link libxapian with - previously any libraries\n explicitly specified to configure by the user via LIBS=... as well as -lm\n (if configure determined it was needed) could get added to XAPIAN_LIBS\n multiple times, as well as also getting added to the libxapian link command\n anyway by automake/libtool standard handling.\n\n \ Specifying a library more than once on the link line is not a problem on\n common platforms, but may be an issue somewhere (and it's on less common\n platforms where the user is more likely to have to specify LIBS to configure\n and/or where -lm may be needed).\n\ndocumentation:\n\n* configure: Add missing AC_ARG_VAR for all programs so that they are\n documented in --help output, and so that autoconf knows they are \"precious\"\n and preserves them if configure is rerun even when they're specified via an\n environment variable.\n\n* Don't use x^2 to mean x squared in API docs. This is potentially confusing\n since in C/C++ (and some other languages), ^ means exclusive-or. Write xæ\x97\x8F\n instead, which should be clear to all readers.\n\n* Improve docs for Xapian::Stopper and SimpleStopper.\n\n* docs/intro_ir.rst: Fixed an incorrect term index. Patch from Jaak Ristioja\n \ in https://github.com/xapian/xapian/pull/321.\n\n* Update for the IRC channel move from freenode to libera.chat.\n\nexamples:\n\n* quest: Don't enable spelling correction by default. It was really only on by\n default because the spelling correction support in quest was added before\n --flags. It seems more helpful for the default to match the\n Xapian::QueryParser API, and also this fixes the weird situation that\n `--flags default` isn't the default you get without any `--flags` option.\n\n* quest: Multiple `--flags` options now get combined - previously only the last\n was used.\n\nportability:\n\n* Don't automatically use _FORTIFY_SOURCE on mingw-w64. Recent mingw-w64\n versions require -lssp to be linked when _FORTIFY_SOURCE is enabled, so just\n skip the automatic enabling. Users who want to enable it can specify it\n explicitly.\n\n Fixes #808, reported by xpbxf4.\n\n* Workaround NFS issue in test harness function for deleting test databases.\n On NFS, rmdir() can fail with EEXIST or ENOTEMPTY (POSIX allows either)\n due to .nfs* files which are used by NFS clients to implement the Unix\n semantics of a deleted but open file continuing to exist. We now sleep\n and retry a few times in this situation to give the NFS client a chance\n to process the closing of the open handle. Problem mentioned in #631.\n\n* configure: Drop -lm special case for Sun C++ as this no longer seems to\n be required. Tested with Sun C++ 5.13, which is the oldest version we\n now support due to us now requiring C++11.\n\n* Use strerrordesc_np() if available. This is a GNU-specific replacement for\n sys_errlist and sys_nerr. It was added in glibc 2.32 since which sys_errlist\n and sys_nerr are no longer declared in the headers.\n\n* Update debug logging to use std::uncaught_exceptions() under C++17 and later\n since this allows the debug logging to detect a function without RETURN()\n annotation which exits normally while there's an uncaught exception\n (previously the debug logging would think the stack was being unwound through\n the function). This also avoids deprecation warnings - the old\n std::uncaught_exception() (note: singular) function was deprecated by\n C++17 and removed in C++20.\n\n* Increase size of buffer passed to strerror_r() from 128 to 1024 bytes, which\n \ is the size recommended by the man page on Linux.\n\n* Fix -Wdeprecated-copy warning from clang 13.\n" module: pkgsrc subject: 'CVS commit: pkgsrc/textproc/xapian' unixtime: '1641115880' user: schmonz