Subject: CVS commit: pkgsrc/textproc/xapian
From: Amitai Schleier
Date: 2020-02-25 18:55:30
Message id: 20200225175530.3C3ADFBF4@cvs.NetBSD.org

Log Message:
Update to 1.4.15. From the changelog:

API:

* Database::check(): Fix checking of replication changesets.  This reverts a
  change incorrectly made in 1.3.7.

* Database::locked(): Return false instead of true for a closed inmemory DB.

* Database::commit(): If commit() failed with an exception while trying to add
  pending changes (e.g. InvalidArgumentError due to a long term containing zero
  bytes) then a subsequent commit() on the same object would throw the same
  exception.  Now we clear the pending changes in this situation (like we
  already did for failure at other stages in the commit).  This bug remains
  unfixed for the chert backend as it's harder to fix there and the effort to
  fix it and extra risk of breakage don't seem justified for a backend we
  recommend people migrate away from.

* QueryParser::parse_query(): Optimise parsing of multi-word synonyms.

testsuite:

* Use 50-word synonym for qp_scale1 "large" case.  50 divides exactly \ 
into the
  number of repetitions we do for the "small" case, which 60 (as used \ 
before)
  doesn't.  This makes the two cases a little more comparable and should help
  make this testcase less flaky (see #764).

* Adjust testcase matches1 to work with remote shards where the matcher can
  return slightly better bounds on the number of matches in some cases.
  Resolves 2 XFAILs.

* The testharness get_remote_database() method is now supported for sharded
  databases.  This is needed for keepalive1 to run successfully under multi
  test backends.  Resolves 2 XFAILs of keepalive1.

* Improved test coverage:

  + Test locked() on a closed WritableDatabase, which already returns false (as
    expected) in 1.4.x (but was broken on master).

  + Check multi databases in testsuite - this has been supported by
    Database::check() since 1.4.12.

  + Also test OP_SYNONYM and OP_MAX in emptydb1.

  + Backport testcases boolorbug1, emptynot1, emptymaybe1 and
    phraseweightcheckbug1 from git master - these are regression tests for
    fixed bugs which only affected git master, but it's useful to confirm that
    these bugs don't currently affect 1.4, and ensure they don't get introduced.

* perftest: Store memory sizes as long long since on Microsoft Windows long is
  only 32 bits, which is less than common memory sizes.

matcher:

* Hoist positional check above OP_FILTER.

* Handle OP_FILTER with more than two subqueries correctly.  Previously we'd
  only check the first two subqueries in some situations.

remote backend:

* For a remote WritableDatabase, the client now keeps track of whether there
  are pending changes, and if there aren't then we now do nothing for commit()
  or cancel() calls.  In particular this saves a message exchange when the
  WritableDatabase destructor is called when changes have already been
  committed with an explicit call to commit() (which is what we recommend
  doing, since with an explicit call to commit() you get to see any exception
  which gets thrown).

* When closing a remote prog WritableDatabase, previously an exception could
  leave the remote connection open with the remote server running, and we'd
  then wait for the specified timeout before closing the connection.  Now we
  close the connection before letting the exception propagate.

* Don't swallow exceptions from Database::close() on a remote database.  If
  we aren't in a transaction and so try to commit() and that fails then
  previously the caller would have no indication of the failure.

* Fix handling the reported term weight when remote shards are searched.
  Fixes 5 XFAILs in the testsuite.

* Add missing space to mismatching protocol versions error message.

build system:

* Fix to build when configured with --disable-backend-remote, broken by changes
  in 1.4.14.  Fixes #797, reported by Дилян Палаузов.

* The clang and icc compilers both define __GNUC__, which led our ABI mismatch
  message to report them as "g++" with a bogus version (the version of \ 
GCC that
  these compilers advertise themselves as, which for clang is always 4.2.0) -
  now we report clang++ or icc along with the actual version of that compiler.

documentation:

* AUTHORS: Apply missed update to the thankyou list for 1.4.14.

* INSTALL: Note that MSVC 2019 works.

* INSTALL: Note that Xapian can use the system uuid.h on AIX and OpenBSD.

portability:

* Simplify probes for snprintf.  The broken snprintf in libbsd in Linux libc4
  is from ~25 years ago so way too ancient to matter now, and all callers
  already handle the pre-ISO semantics of returning -1 for an undersize buffer
  so we don't need to run a test program to probe for this at configure time,
  which is more cross-compile friendly.

* Don't quote messages in #error - the quotes aren't required and appear in the
  compiler output (at least with GCC and clang) making it less readable.

* Use a different approach for getting a 64-bit capable stat() for mingw32.
  This means we now use the same stat variant for mingw32 and MSVC, which
  seems a better plan.

* Work around unhelpful config.status behaviour.  It comments out any #undef
  lines in config.h, even those added via AH_TOP and AH_BOTTOM.  Splitting
  these lines means they don't match the regex hammer config.status uses.

* Avoid -Wdeprecated-copy warnings from clang 10.

* Avoid deprecation warning on recent Linux.  We were including sys/sysctl.h if
  it existed, which it does on Linux but we don't actually use it there.
  Including it now warns that it is deprecated, so skip including it under
  Linux.  Reported on IRC by kumaran.

* Suppress GCC -Wduplicated-branches warning from our API headers in a
  different way which avoids needing a compiler-specific #pragma.

* Workaround closefrom1 failure on macOS.  It seems under macOS our fd tracking
  can end up using fd 10 so start from 13 when testing closefrom() so we don't
  close the fd which our fd tracking is using internally.

debug code:

* Log RemoteConnection::read_at_least() return value.

Files:
RevisionActionfile
1.17modifypkgsrc/textproc/xapian/distinfo-bindings
1.39modifypkgsrc/textproc/xapian/distinfo
1.17modifypkgsrc/textproc/xapian/PLIST
1.11modifypkgsrc/textproc/xapian/Makefile.common