General:
* We now consistently fail at configure time if bindings for a target
language are explicitly enabled (using e.g. `--with-lua`) but required
dependencies are not found. Previously in some cases we would continue
but effectively ignore the option.
Portability:
* We no longer explicitly link bindings with -lstdc++. This was added in 0.9.3
in 2005 as a workaround for a linking problem on OpenBSD, but nowadays it
causes link failures on platforms which use clang+libc++ as the C++ compiler
which includes OpenBSD so it seems this fix is no longer useful anywhere.
Fixes#834, reported by David Gessel.
If this change results in you getting a link failure, please let us know
about it. You can probably workaround the failure by specifying an explicit
link with -lstdc++ like so:
make LIBS=-lstdc++
This assumes the C++ compiler you are using uses libstdc++ - if it uses
libc++ then try:
make LIBS=-lc++
Java:
* Formally declare Java bindings API stable. This API has been de-facto stable
for several years and any incompatible changes can now be handled in the
usual way at the start of a release series.
* Improve build on FreeBSD and DragonFlyBSD to find the jni_md.h header
automatically.
Lua:
* Overhaul Lua configure probes. As part of this we now check for the Lua
interpreter with a versioned name (e.g. lua5.4 and lua54) and handle a DOS
drive letter on the directories in `package.cpath`.
PHP:
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=106
- update to 1.4.21:
* Documentation:
- Consistently say "macOS" not "Mac OS X", "OS X", etc.
* General:
- Update to use AX_CXX_COMPILE_STDCXX which is a replacement for
AX_CXX_COMPILE_STDCXX_11 (which we were using) which also
supports newer C++ standards versions which will be useful.
For C++11 the only difference seems to be that the macro now
checks for attribute support - we use C++11 attributes so
that seems a good thing.
* Portability:
- Drop special handling of MACOSX_DEPLOYMENT_TARGET. This was
only relevant for macOS 10.3 and (for powerpc only) 10.4, and
Apple dropped support for 10.4 in 2009.
* Java:
- Document where to install .jar on macOS. Partly addresses #774
- Rebase patch:
* do-not-use-sphinx.diff
- Add workaround for Leap 15.4 where %python38_version_nodots
doesn't evaluate properly
OBS-URL: https://build.opensuse.org/request/show/1007287
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=100
- Refresh do-not-use-sphinx.diff
- update to 1.4.20:
* Enable -fvisibility-inlines-hidden option if the compiler supports it.
* Add missing reference tracking. XapianEnquire now keeps a reference to the
current XapianSorter object (if any). XapianQueryParser now keeps a
reference to any set XapianFieldProcessor objects. Test coverage for keeping
references to set functor objects is now more comprehensive.
* smoketest.php: Remove bogus extra null parameters. PHP ignores these extra
parameters, but it's more helpful to be testing valid usage.
* The configure probes for Python3 no longer use the deprecated distutils and
imp modules (both of which are slated for removal in Python 3.12). We now
use sysconfig to get the directory to install the xapian module to, which may
result in it being installed in a different place (it should still work, but
if you're packaging the bindings you may need to update the list of files to
include in the package). (forwarded request 990268 from bnavigator)
OBS-URL: https://build.opensuse.org/request/show/993353
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xapian-bindings?expand=0&rev=39
- Refresh do-not-use-sphinx.diff
- update to 1.4.20:
* Enable -fvisibility-inlines-hidden option if the compiler supports it.
* Add missing reference tracking. XapianEnquire now keeps a reference to the
current XapianSorter object (if any). XapianQueryParser now keeps a
reference to any set XapianFieldProcessor objects. Test coverage for keeping
references to set functor objects is now more comprehensive.
* smoketest.php: Remove bogus extra null parameters. PHP ignores these extra
parameters, but it's more helpful to be testing valid usage.
* The configure probes for Python3 no longer use the deprecated distutils and
imp modules (both of which are slated for removal in Python 3.12). We now
use sysconfig to get the directory to install the xapian module to, which may
result in it being installed in a different place (it should still work, but
if you're packaging the bindings you may need to update the list of files to
include in the package).
OBS-URL: https://build.opensuse.org/request/show/990268
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=98
- update to 1.4.19:
* configure: Add missing AC_ARG_VAR for all programs so that they are
documented in --help output, and so that autoconf knows they are "precious"
and preserves them if configure is rerun even when they're specified via an
environment variable.
* Replace uses of obsolete autoconf macros, fixing warnings if configure is
regenerated with a recent release of autoconf.
* Add missing wrappers for some QueryParser FLAG_* constants.
* Fix incorrect formatting in the processed POD documentation due to missing
escaping of `>` in code snippets.
* Make configure PHP5 version check more robust. Previously it would have
incorrectly accepted any (future) PHP version >= 10.0.0.
* configure: We now reject PHP8 since it isn't currently supported
by a released version of SWIG. SWIG 4.1.0 will supports PHP8.
* configure: Check for php-config7.4 as well as earlier 7.x versions
and php-config.
* Fix deprecation warnings with Python >= 3.9.
* Remove more files/dirs on "make clean". Reported by Gaurav Arora.
* Fix build with Ruby 3.0 and clang. Reported by Eduard Panov on macos, where
clang is the default compiler.
* Improve markup in Ruby bindings docs.
OBS-URL: https://build.opensuse.org/request/show/949598
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=97
- Update to version 1.4.17:
* No user-visible change except for bumping the version to indicate
compatibility with Xapian-core 1.4.17.
- Update to version 1.4.16:
+ General:
* Remove code to support SVN snapshots since we stopped using SVN more than 5
years ago.
* Ignore overloads for logical ops, *, /. These were already ignored for
several languages, and aren't actually usefully wrapped for any of the other
languages.
+ CSharp:
* Work around mono terminfo parsing bug in more cases. With this, "make",
"make check", "make install" and "make uninstall" all work on Ubuntu 18.10.
Patch from Dipanshu Garg, fixes https://github.com/xapian/xapian/pull/287 and
#801.
+ Lua:
* Allow passing a Lua function as a MatchSpy. This was supposed to be
supported already, but the typemaps weren't set up.
* On platforms where sizeof(long) is 4, SWIG was wrapping Xapian::BAD_VALUENO
as a negative constant in Lua, which was then rejected by a check which
disallows passing negative values for unsigned C++ types. We now direct SWIG
to handle Xapian::valueno as double (which is what numbers in Lua usually
actually are) which gives us an unsigned constant, and also eliminates the
negative value check.
* Correct documentation - get_description() is wrapped as tostring() in Lua,
not str() as we previously claimed.
* Add test coverage for passing Lua function for a Stopper.
+ Perl:
* Resolve the remaining issues and remove the "experimental" marker:
+ Add search_xapian_compat() function which sets up aliases in the
OBS-URL: https://build.opensuse.org/request/show/829896
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=88
- Update to 1.4.14:
* Python3:
+ Remove broken replicationtest.py. It's never worked reliably, and because
of that was disabled shortly after being added over a decade ago.
Unsurprisingly it's bit-rotted at least a bit since. Nobody seems interested
in fixing it, so it's time to just get rid of it.
- Remove the python2 bindings
- Rebase patch:
* do-not-use-sphinx.diff
- Update to 1.4.13:
* General:
+ Omit SWIG exception handling for destructors. Since C++11, destructors can't
throw by default and we don't override that default, so there's no point
adding exception handling code for them.
+ Ensure doccomments.i is distributed. If you unpacked a distribution tarball,
configured it and then ran "make dist" python/doccomments.i and
python3/doccomments.i would be missing unless you configured the tree with
--enable-maintainer-mode.
* PHP:
+ Check for php-config5.6 and php-config5.5 in configure as these versioned
names are used in some packages (such as those from the ondrej/php PPA).
* PHP7:
+ Work around build failure on Illuminos. Fixes
https://trac.xapian.org/ticket/793, reported by Amitai Schleier.
* Ruby:
+ smoketest.rb: Use #push not #append on Array to restore compatibility with
Ruby < 2.5 (broken by changes in 1.4.12).
+ Expand tabs in Ruby code since using spaces for indentation seems to be
preferred Ruby style.
+ Remove trailing `;` from Ruby code.
- Update to 1.4.12:
* Documentation:
+ Update bindings HACKING document. Reported as out of date by Niwesh Gupta.
* CSharp:
+ Work around mono terminfo parsing bug - older cli-sn fails with e.g.
TERM=xterm-256color due to: https://github.com/mono/mono/issues/6752
Encountered on Kubuntu 18.10 and debugged by Tejasvi Tomar. Seems to be
fixed in the mono version in Debian buster.
* Perl:
+ Suppress warnings from older Perl headers due to use of constructs which look
like C++11 user-defined literals. They're fixed in newer versions so they're
just noise in our build. We were working around these in the CI build, so
drop that workaround as we want to make the build warning-clean for users
too. Reported by daniel93 on #xapian.
* Python3:
+ Fix build for changes in Sphinx 2.0 (which drops support for sphinx.main()).
Fixes#778, reported by karolyi. Also reported by Gaurav Arora.
+ We now throw UnicodeEncodeError for bad Unicode string input. Previously
cases such as a lone surrogate would be handled by quietly skipping the bad
codepoints when converting to UTF-8 to pass to Xapian.
+ We no longer use the deprecated old-style Py_UNICODE API, which currently
gives deprecation warnings and is slated to be removed in Python 4.0.
* Ruby:
+ Add support for block iteration. All the iterator methods in the Ruby API
now accept an optional block. If no block is given an array is returned so
existing code will still work. Partly based on a patch in
https://github.com/xapian/xapian/pull/232 from Cong Ding.
+ Add missing wrappers for all the C++ methods returning iterators which
weren't wrapped for Ruby. Fixes#777, reported by do.
+ Suppress warnings from Ruby 2.3 headers due to use of register and
constructs which look like C++11 user-defined literals. They're fixed in
newer versions so they're just noise in our build. We were working around
these in the CI build, so drop that workaround as we want to make the build
warning-clean for users too. Reported by daniel93 on #xapian.
+ smoketest.rb: Don't leave temporary databases behind in /tmp.
- Update to 1.4.11:
* CSharp:
+ Make MatchAll and MatchNothing readonly.
* Java:
+ Simplify load-time setup of Query.OP_OR, etc which are provided for
compatibility with the original hand-written JNI bindings.
* PHP:
+ We now load the module for "make check" using -d extension=xapian which
avoids needing to turn off safe_mode and turn on enable_dl, and matches how
the module is usually loaded in production use.
* PHP7:
+ Fix access to already released memory during PHP module shutdown, which often
didn't cause visible problems, but could result in segmentation faults, bus
errors, etc.
+ Fix generated code to compile when using a ZTS-enabled build of PHP.
+ We now load the module for "make check" using -d extension=xapian which
avoids needing to turn off safe_mode and turn on enable_dl, and matches how
the module is usually loaded in production use.
- Update to 1.4.10:
* Documentation:
+ Use https for URLs where supported.
* General:
+ Wrap new DatabaseClosedError and DatabaseNotFoundError exceptions.
See #772 and #773. Patches from Vaibhav Kansagara.
+ Update expected query descriptions in tests for the xapian-core
change to produce flatter Query trees.
+ Workaround Perl 5.28 -i quirk when postprocessing SWIG-generated code.
The commands in question are only run when maintainer-mode is enabled.
* CSharp:
+ C++ constant Xapian::BAD_VALUENO is now wrapped without using a getter.
This shouldn't affect existing user code.
* Java:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as Java constant
Xapian.BAD_VALUENO. The previous Java wrapping as function
Xapian.getBAD_VALUENO() is still supported for compatibility with
existing code.
+ Remove redundant std::string initialisation.
* Lua:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as a constant rather than
an immutable attribute. This shouldn't affect existing user code.
* Perl:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as Perl constant
Xapian::BAD_VALUENO. The previous Perl wrapping as variable
$Xapian::BAD_VALUENO is still supported for compatibility with existing
code.
+ Note in the POD documentation that the Error base classes which are abstract
in C++ don't have a new method in Perl.
* PHP:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as PHP constant
Xapian::BAD_VALUENO. The previous PHP wrapping as function
Xapian::BAD_VALUENO_get() is still supported for compatibility with existing
code.
+ Remove code to work around a SWIG bug which was fixed in 2006.
* PHP7:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as PHP constant
Xapian::BAD_VALUENO. The previous PHP wrapping as function
Xapian::BAD_VALUENO_get() is still supported for compatibility with existing
code.
+ configure: Check for php-config7.3 and php-config7.2 as well as
php-config7.1, php-config7.0 and php-config.
+ Correct references to PHP5 in PHP7 script comments.
+ Remove some C code which is no longer needed with PHP7.
* Ruby:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as Ruby constant
Xapian::BAD_VALUENO. The previous Ruby wrapping as function
Xapian::BAD_VALUENO() is still supported for compatibility with existing
code.
+ We now recommend using String#encode instead of the Iconv class, since the
latter is no longer included with Ruby.
* Tcl:
+ C++ constant Xapian::BAD_VALUENO is now wrapped as a constant rather than
variable which can't be written to. This shouldn't affect existing user
code.
OBS-URL: https://build.opensuse.org/request/show/766613
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xapian-bindings?expand=0&rev=32
- Update to 1.4.14:
* Python3:
+ Remove broken replicationtest.py. It's never worked reliably, and because
of that was disabled shortly after being added over a decade ago.
Unsurprisingly it's bit-rotted at least a bit since. Nobody seems interested
in fixing it, so it's time to just get rid of it.
- Remove the python2 bindings
- Rebase patch:
* do-not-use-sphinx.diff
- Update to 1.4.13:
* General:
+ Omit SWIG exception handling for destructors. Since C++11, destructors can't
throw by default and we don't override that default, so there's no point
adding exception handling code for them.
+ Ensure doccomments.i is distributed. If you unpacked a distribution tarball,
configured it and then ran "make dist" python/doccomments.i and
python3/doccomments.i would be missing unless you configured the tree with
--enable-maintainer-mode.
* PHP:
+ Check for php-config5.6 and php-config5.5 in configure as these versioned
names are used in some packages (such as those from the ondrej/php PPA).
* PHP7:
+ Work around build failure on Illuminos. Fixes
https://trac.xapian.org/ticket/793, reported by Amitai Schleier.
* Ruby:
+ smoketest.rb: Use #push not #append on Array to restore compatibility with
Ruby < 2.5 (broken by changes in 1.4.12).
+ Expand tabs in Ruby code since using spaces for indentation seems to be
preferred Ruby style.
+ Remove trailing `;` from Ruby code.
OBS-URL: https://build.opensuse.org/request/show/764596
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=83
- Update to 1.4.9
* PHP7:
+ Fix to build with upcoming PHP 7.3 release, which changes array_init()
to not return a value instead of always returning the constant SUCCESS.
We were checking this return value but no longer do.
- Update to 1.4.8
* Perl:
+ Wrap new STEM_SOME_FULL_POS constant.
+ Add STEM_ALL_Z to qpstem export tag and POD docs.
+ Fix Perl bindings documentation typos.
* Python:
+ Fix RST formatting warning during build.
* Python3:
+ Fix RST formatting warning during build.
OBS-URL: https://build.opensuse.org/request/show/650356
OBS-URL: https://build.opensuse.org/package/show/server:search/xapian-bindings?expand=0&rev=79