head	1.21;
access;
symbols
	pkgsrc-2026Q1:1.21.0.2
	pkgsrc-2026Q1-base:1.21
	pkgsrc-2025Q4:1.18.0.2
	pkgsrc-2025Q4-base:1.18
	pkgsrc-2025Q3:1.17.0.6
	pkgsrc-2025Q3-base:1.17
	pkgsrc-2025Q2:1.17.0.4
	pkgsrc-2025Q2-base:1.17
	pkgsrc-2025Q1:1.17.0.2
	pkgsrc-2025Q1-base:1.17
	pkgsrc-2024Q4:1.16.0.2
	pkgsrc-2024Q4-base:1.16
	pkgsrc-2024Q3:1.15.0.2
	pkgsrc-2024Q3-base:1.15
	pkgsrc-2024Q2:1.14.0.4
	pkgsrc-2024Q2-base:1.14
	pkgsrc-2024Q1:1.14.0.2
	pkgsrc-2024Q1-base:1.14
	pkgsrc-2023Q4:1.13.0.2
	pkgsrc-2023Q4-base:1.13
	pkgsrc-2023Q3:1.12.0.2
	pkgsrc-2023Q3-base:1.12
	pkgsrc-2023Q2:1.11.0.2
	pkgsrc-2023Q2-base:1.11
	pkgsrc-2023Q1:1.10.0.6
	pkgsrc-2023Q1-base:1.10
	pkgsrc-2022Q4:1.10.0.4
	pkgsrc-2022Q4-base:1.10
	pkgsrc-2022Q3:1.10.0.2
	pkgsrc-2022Q3-base:1.10
	pkgsrc-2022Q2:1.8.0.4
	pkgsrc-2022Q2-base:1.8
	pkgsrc-2022Q1:1.8.0.2
	pkgsrc-2022Q1-base:1.8
	pkgsrc-2021Q4:1.7.0.2
	pkgsrc-2021Q4-base:1.7
	pkgsrc-2021Q3:1.6.0.4
	pkgsrc-2021Q3-base:1.6
	pkgsrc-2021Q2:1.6.0.2
	pkgsrc-2021Q2-base:1.6
	pkgsrc-2021Q1:1.5.0.12
	pkgsrc-2021Q1-base:1.5
	pkgsrc-2020Q4:1.5.0.10
	pkgsrc-2020Q4-base:1.5
	pkgsrc-2020Q3:1.5.0.8
	pkgsrc-2020Q3-base:1.5
	pkgsrc-2020Q2:1.5.0.6
	pkgsrc-2020Q2-base:1.5
	pkgsrc-2020Q1:1.5.0.2
	pkgsrc-2020Q1-base:1.5
	pkgsrc-2019Q4:1.5.0.4
	pkgsrc-2019Q4-base:1.5
	pkgsrc-2019Q3:1.3.0.2
	pkgsrc-2019Q3-base:1.3
	pkgsrc-2019Q2:1.2.0.18
	pkgsrc-2019Q2-base:1.2
	pkgsrc-2019Q1:1.2.0.16
	pkgsrc-2019Q1-base:1.2
	pkgsrc-2018Q4:1.2.0.14
	pkgsrc-2018Q4-base:1.2
	pkgsrc-2018Q3:1.2.0.12
	pkgsrc-2018Q3-base:1.2
	pkgsrc-2018Q2:1.2.0.10
	pkgsrc-2018Q2-base:1.2
	pkgsrc-2018Q1:1.2.0.8
	pkgsrc-2018Q1-base:1.2
	pkgsrc-2017Q4:1.2.0.6
	pkgsrc-2017Q4-base:1.2
	pkgsrc-2017Q3:1.2.0.4
	pkgsrc-2017Q3-base:1.2;
locks; strict;
comment	@# @;


1.21
date	2026.01.13.17.21.50;	author schmonz;	state Exp;
branches;
next	1.20;
commitid	9F41mmX0wEoDUfqG;

1.20
date	2026.01.06.11.18.19;	author wiz;	state Exp;
branches;
next	1.19;
commitid	QYYWSGaNrkjQ7kpG;

1.19
date	2025.12.22.23.29.38;	author wiz;	state Exp;
branches;
next	1.18;
commitid	MI0Thjp9ZZ6GEsnG;

1.18
date	2025.10.09.07.58.06;	author wiz;	state Exp;
branches;
next	1.17;
commitid	t4nMY0Dt3rBjSRdG;

1.17
date	2025.02.23.16.59.25;	author wiz;	state Exp;
branches;
next	1.16;
commitid	kbo5dPTmHbFBcCKF;

1.16
date	2024.10.14.06.46.04;	author wiz;	state Exp;
branches;
next	1.15;
commitid	ynDJEEQamKd33BtF;

1.15
date	2024.08.10.08.00.32;	author adam;	state Exp;
branches;
next	1.14;
commitid	rhaMBScGXeRsyflF;

1.14
date	2024.03.08.18.55.08;	author schmonz;	state Exp;
branches;
next	1.13;
commitid	Yl1YuWgDJYxU9o1F;

1.13
date	2023.11.07.22.38.08;	author wiz;	state Exp;
branches;
next	1.12;
commitid	0SUcCzviRXnrjJLE;

1.12
date	2023.07.10.15.07.26;	author schmonz;	state Exp;
branches;
next	1.11;
commitid	rfsIOtA6Ii86GgwE;

1.11
date	2023.05.07.10.53.22;	author wiz;	state Exp;
branches;
next	1.10;
commitid	l4c6IKIWkNGtk1oE;

1.10
date	2022.09.24.19.11.20;	author schmonz;	state Exp;
branches;
next	1.9;
commitid	VSvmavQ7gcyCj9VD;

1.9
date	2022.07.10.19.08.30;	author wiz;	state Exp;
branches;
next	1.8;
commitid	LUgyxI1i161cKnLD;

1.8
date	2022.01.02.09.31.59;	author schmonz;	state Exp;
branches;
next	1.7;
commitid	gyA6UoFM2Ag0D2nD;

1.7
date	2021.12.06.15.27.30;	author wiz;	state Exp;
branches;
next	1.6;
commitid	kZ7jcm0lqW5FsBjD;

1.6
date	2021.04.25.09.00.50;	author nia;	state Exp;
branches;
next	1.5;
commitid	y3AWGnyfGETxyEQC;

1.5
date	2019.12.25.12.21.30;	author adam;	state Exp;
branches;
next	1.4;
commitid	xZwPwcb9ODGZj5QB;

1.4
date	2019.10.21.22.11.33;	author adam;	state Exp;
branches;
next	1.3;
commitid	nzQZpxrjXXIWFMHB;

1.3
date	2019.08.24.18.10.50;	author schmonz;	state Exp;
branches;
next	1.2;
commitid	19bPA2IPZBcTcjAB;

1.2
date	2017.07.14.12.55.45;	author joerg;	state Exp;
branches;
next	1.1;
commitid	6ucaygzhJvA5fcZz;

1.1
date	2017.07.10.17.34.04;	author schmonz;	state Exp;
branches;
next	;
commitid	RbmeafR0YnYIUHYz;


desc
@@


1.21
log
@xapian-bindings: reset PKGREVISION for xapian update.
@
text
@# $NetBSD: Makefile,v 1.20 2026/01/06 11:18:19 wiz Exp $

PKGNAME=	${PYPKGPREFIX}-${PKGNAME_MODULE}
COMMENT=	Python bindings for Xapian search engine
HOMEPAGE=	https://xapian.org/docs/bindings/python/

DEPENDS+=	${PYPKGPREFIX}-sphinx>=9:../../textproc/py-sphinx

PYTHON_VERSIONS_INCOMPATIBLE=	310 311 # py-sphinx

CONFIGURE_ARGS+=	--with-python3 PYTHON3=${PYTHONBIN}

PY_PATCHPLIST=		yes
PYTHON_SELF_CONFLICT=	yes

REPLACE_PYTHON=		python/docs/examples/*.py

INSTALLATION_DIRS+=	${PYSITELIB}/xapian/__pycache__

post-install:
	${CHMOD} +x ${DESTDIR}${PREFIX}/share/doc/xapian-bindings/python3/examples/*.py
	${MV} ${DESTDIR}${PREFIX}/${PYSITELIB}/xapian/*.cpython* ${DESTDIR}${PREFIX}/${PYSITELIB}/xapian/__pycache__/

.include "../../lang/python/application.mk"
.include "../../lang/python/extension.mk"
.include "../../textproc/xapian/module.mk"
.include "../../mk/bsd.pkg.mk"
@


1.20
log
@*: forbid Python 3.11 for sphinx users

list from 'bob scan'
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.19 2025/12/22 23:29:38 wiz Exp $
a3 1
PKGREVISION=	1
@


1.19
log
@py-xapian: fix PLIST for sphinx 9

Bump PKGREVISION.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.18 2025/10/09 07:58:06 wiz Exp $
d10 1
a10 1
PYTHON_VERSIONS_INCOMPATIBLE=	310 # py-sphinx
@


1.18
log
@*: remove reference to (removed) Python 3.9
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.17 2025/02/23 16:59:25 wiz Exp $
d4 1
d8 1
a8 1
DEPENDS+=	${PYPKGPREFIX}-sphinx>=7:../../textproc/py-sphinx
@


1.17
log
@*: py-sphinx 8.2 drops support for Python 3.10
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2024/10/14 06:46:04 wiz Exp $
d9 1
a9 1
PYTHON_VERSIONS_INCOMPATIBLE=	39 310 # py-sphinx
@


1.16
log
@*: clean-up after python38 removal
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2024/08/10 08:00:32 adam Exp $
d9 1
a9 1
PYTHON_VERSIONS_INCOMPATIBLE=	39 # py-sphinx
@


1.15
log
@py-xapian: not for Python 3.9
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2024/03/08 18:55:08 schmonz Exp $
d9 1
a9 1
PYTHON_VERSIONS_INCOMPATIBLE=	27 38 39 # py-sphinx
@


1.14
log
@py-xapian: quell pkglint.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2023/11/07 22:38:08 wiz Exp $
d9 1
a9 1
PYTHON_VERSIONS_INCOMPATIBLE=	27 38
@


1.13
log
@*: latest py-sphinx only support Python 3.9+
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2023/07/10 15:07:26 schmonz Exp $
d18 2
a21 1
	${MKDIR} ${DESTDIR}${PREFIX}/${PYSITELIB}/xapian/__pycache__
@


1.12
log
@Update to 1.4.23. From the changelog:

API:

* Add `FLAG_NGRAMS` as a preferred new alias for `FLAG_CJK_NGRAM` and
  `SNIPPET_NGRAMS` as a preferred new alias for `SNIPPET_CJK_NGRAM`.
  In the next release series these features have been expanded to cover many
  more languages so the "CJK" in the name has become inaccurate as it stands
  for "Chinese, Japanese and Korean").

* Database::check(): Improve the exception message for an empty filename from
  "Failed to rewind file descriptor -1 (Bad file descriptor)" to "Couldn't find
  Xapian database or table to check (No such file or directory)".

testsuite:

* The test harness now supports generated databases for all backends and
  all testcases which can use generated databases now do, which together
  improve test coverage as we now run many testcases under more backends.
  Generated databases can also be cached, which helps speed up the test
  suite.

* Remove some testcases which are now redundant with other testcases or
  no longer useful for other reasons.

* Add regression test for #781, reported by Germán M. Bravo.  This bug was
  fixed 4 years in 1.4.12 but a clean regression test only became possible
  thanks to changes in this release.

* The test harness would attempt to throw a Xapian::Database (rather than
  Xapian::DatabaseError) if it failed to rename a temporary database to its
  final name.  This would fail because there wasn't a database called "rename
  failed".  Reported by stark3y on #xapian.

* apitest: Fix exceed32bitcombineddb1 testcase (which only runs with
  --enable-64bit-docid).

* apitest: Fix nomoredocids1 when configured with --enable-64bit-docid.

* Add testcase for removal of positions for replaced doc (regression test for
  bug in git master not present in 1.4.x).

* unittest: Unit test block file functions

* Stop using std::endl in tests since this seems to be C++ best practice
  as it causes a flush of the stream, which is rarely actually wanted.  Also
  often the replacement \n can be combined with a string literal.

* Use Xapian::docid for document ids in testcases.  Using `int` or `size_t`
  works, but is less correct and can trigger compiler warnings because not all
  values are representable.

matcher:

* BM25PlusWeight: With some parameter combinations we were requesting stats we
  didn't actually need.  Confirmed with Vivek Pal on IRC.

glass backend:

* Avoid unnecessary copying of data when adding an item to a B-tree table which
  should speed up indexing a bit.

* xapian-check: If the first chunk for a term is a continuation chunk, the
  affected term was missing from the error message.

* xapian-check: We now report the document id as context in many more error
  messages.

chert backend:

* Fix wdf upper bounds used when search a modified chert-format
  WritableDatabase object.  A bug introduced in 1.4.19 meant we were using the
  wdf upper bounds from the last committed version of the database.  This bug
  could cause assertion failures when configured with --enable-assertions.

remote backend:

* Fix thread-safety issue starting remote prog server.  Previously we did some
  memory allocation in the child process after fork() but before we exec-ed the
  specified program, but in a multi-threaded program (which libxapian might be
  used in) it's only safe to call async-signal-safe functions in the child
  process after fork() until exec, and malloc, etc aren't async-signal-safe.

* If we failed to open /dev/null in the child process while starting a remote
  prog server, we would try to throw an exception.  That's not going to work
  well so now we just call `_exit(-1)`.

inmemory backend:

* Throw exception on docid overflow like we do in other backends.

build system:

* configure: When probing for socklen_t or equivalent include the same headers
  as we do in the code to reduce the risk of configure deciding to use
  socklen_t but it not getting defined in the code.

* configure: When probing if a particular compiler or linker option is
  supported, we were relying on the compiler exit status but some compilers
  only warn about unknown options.  We now inspect the compiler's stderr
  output to try to detect such cases.

* configure: Avoid compiler warning during GCC version check when compiler
  needs an option to enable C++11 support.

* Avoid running pwd since the directories we need are available in automake
  variables.

documentation:

* Suggest protocol buffers for structured document data.  Fixes #53.

* Clarify documentation for release() methods.

* Fix typo "shared database" to "sharded database" in API docs.

* Document that transactions aren't atomic across shards.

tools:

* xapian-progsrv,xapian-tcpsrv: Support multiple DBs with --writable.

* xapian-tcpsrv: Fix default timeouts in --help output which have been reported
  as the name of the constant rather than its value since 1.3.3.

* xapian-tcpsrv: When --one-shot is specified, don't do the usual test open of
  the specified database(s) as it doesn't really seem useful in this case.  The
  test harness uses --one-shot so this reduces overhead when running remote
  tests.

* Stop using std::endl in tools since this seems to be C++ best practice
  as it causes a flush of the stream, which is rarely actually wanted.  Also
  often the replacement \n can be combined with a string literal.

portability:

* Don't pass mode to open when it's unused as this triggers "missing O_CREAT or
  O_TMPFILE?" warnings when compiling for Android.

* Stop using INFINITY macro.  If the implementation supports floating point
  infinities then HUGE_VAL gives us infinity as a double directly.  If not,
  then it's the maximum finite value of a double.

* Don't auto-enable _FORTIFY_SOURCE on mingw or mingw-w64.  Enabling
  _FORTIFY_SOURCE on newer mingw-w64 requires linking with -lssp so we
  attempted to stop automatically enabling it there in 1.4.19 but this fix
  didn't actually work.  Trying to get this to work automatically has proved
  difficult and I couldn't find evidence that _FORTIFY_SOURCE was actually
  supported on mingw.  If it is, enabling manually will still work.

* Fix mingw32 build with C++17 compiler, which ends up with std::byte
  conflicting with byte typedefs in system headers, due to us having `using
  namespace std;` in some of our internal headers.  Switch the ones which
  are causing problems to more targetted `using std::string;`, etc instead.

* Fix WIN32 build with --disable-backend-remote which was failing because we
  were always trying to build common/socket_utils.cc which fails because
  SOCKLEN_T hasn't been probed.  Fixes #821, reported by mgautier.

* soaktest: Use C++11 <random> which is more portable than random().

* In WIN32 builds, pass the program pathname separately to CreateProcess()
  which is apparently more robust if the program pathname contains spaces.

* Stop trying to set Microsoft-specific SO_EXCLUSIVEADDRUSE option on our
  listening sockets.  It's not possible to set both SO_REUSEADDR and
  SO_EXCLUSIVEADDRUSE so this call will always fail with WSAEINVAL, but we
  were ignoring these errors because SO_EXCLUSIVEADDRUSE required admin
  privileges in older OS versions.

* Suppress MSVC deprecation warning for GetVersionEx since none of the
  suggested replacements seems to actually provide the functionality we are
  using from it.

* Fix some warnings from MSVC in the fallback code for overflow-checked
  arithmetic.

* Support Enquire::set_time_limit() on GNU Hurd since Hurd now implements
  timer_create().

* Remove lingering traces of IRIX support as it's been dead for many years.

debug code:

* Fix build failure with --enable-assertions due to incorrect variable name in
  assertion.  Patch from Alexei Kharchev in
  https://github.com/xapian/xapian/pull/327.

* Fix GCC warning with --enable-log.

* Fix debug logging for 3 GlassDatabase methods to log their parameter.

* Add a mechanism to support debug logging templated return types containing
  commas.  This was added to fix a build failure on master with --enable-log
  reported by ttyS3.

Bindings:

Documentation:

* Where we document how to build the bindings, link to the download page so
  the reader can easily find the source to download.  Reported by John G. Heim.

* Update lists of debian packages to install for bindings development to
  show be for the latest stable release and the one before (bookworm and
  bullseye).

* HACKING: Fix typos in deprecation warning section

* HACKING: Update link to Pike bindings

* HACKING: Document issues caused by macOS SIP.  Fixes #732.

General:

* Add `FLAG_NGRAMS` as a preferred new alias for `FLAG_CJK_NGRAM` and
  `SNIPPET_NGRAMS` as a preferred new alias for `SNIPPET_CJK_NGRAM`.
  In the next release series these features have been expanded to cover many
  more languages so the "CJK" in the name has become inaccurate as it stands
  for "Chinese, Japanese and Korean").

* Avoid running pwd in makefiles since the directories we need are available in
  automake variables.

CSharp:

* SmokeTest.cs: Fix some incorrect messages if testcases fail.

* Smoketest.cs: Test stemmer description.

Lua:

* Update docs for supported Lua versions.

Perl:

* Generate HTML docs for each class.

* Document all QueryParser FLAG_* constants.

* Update one place which didn't correctly indicate the current status of the
  Perl bindings.  Fixes #523.

Python:

* Fix bug in wrapper for xapian.Query when constructing OP_WILDCARD queries.
  A workaround for this bug which works with existing releases is to pass
  0 for the third and fourth optional parameters like so:

  xapian.Query(xapian.Query.OP_WILDCARD, "xyz", 0, 0)

Python3:

* Fix bug in wrapper for xapian.Query when constructing OP_WILDCARD queries.
  A workaround for this bug which works with existing releases is to pass
  0 for the third and fourth optional parameters like so:

  xapian.Query(xapian.Query.OP_WILDCARD, "xyz", 0, 0)

Ruby:

* Improve documentation about __call__ methods.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2023/05/07 10:53:22 wiz Exp $
d9 1
a9 1
PYTHON_VERSIONS_INCOMPATIBLE=	27
@


1.11
log
@py-xapian: fix PLIST for latest sphinx and depend on it
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2022/09/24 19:11:20 schmonz Exp $
a3 1
PKGREVISION=	1
@


1.10
log
@Remove a vestige of Python 2.x support.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2022/07/10 19:08:30 wiz Exp $
d4 1
d8 1
a8 1
DEPENDS+=	${PYPKGPREFIX}-sphinx-[0-9]*:../../textproc/py-sphinx
@


1.9
log
@py-xapian: restrict to python3
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2022/01/02 09:31:59 schmonz Exp $
a12 1
PLIST_SUBST+=		PYTHON_3_OR_PYTHON=python3
@


1.8
log
@Reset PKGREVISION for xapian update.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2021/12/06 15:27:30 wiz Exp $
d7 1
a7 1
PYTHON_VERSIONED_DEPENDENCIES=	sphinx
a10 5
.include "../../lang/python/pyversion.mk"
.if ${_PYTHON_VERSION} == 27
CONFIGURE_ARGS+=	--with-python
PYTHON_3_OR_PYTHON=	python
.else
a11 2
PYTHON_3_OR_PYTHON=	python3
.endif
d13 1
a13 1
PLIST_SUBST+=		PYTHON_3_OR_PYTHON=${PYTHON_3_OR_PYTHON:Q}
d20 1
a20 2
	${CHMOD} +x ${DESTDIR}${PREFIX}/share/doc/xapian-bindings/${PYTHON_3_OR_PYTHON}/examples/*.py
.if ${_PYTHON_VERSION} != 27
a22 1
.endif
a25 1
.include "../../lang/python/versioned_dependencies.mk"
@


1.7
log
@py-xapian: mark as not for python 2.x

Does not package.

Leave 2.7 support code for now in case of highly motivated packagers
interested in fixing this.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2021/04/25 09:00:50 nia Exp $
a3 1
PKGREVISION=	1
@


1.6
log
@py-xapian: regen PLIST due to new sphinx-generated files
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2019/12/25 12:21:30 adam Exp $
d10 2
@


1.5
log
@py-xapian: fix PLIST for Pythin 3.x/Sphinx 2; mark as self-conflicting
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2019/10/21 22:11:33 adam Exp $
d4 1
@


1.4
log
@Switch sphinx to versioned deps.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2019/08/24 18:10:50 schmonz Exp $
d20 1
@


1.3
log
@Try to fix bulk-build PLIST problems I can't reproduce.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2017/07/14 12:55:45 joerg Exp $
d3 3
a5 3
PKGNAME=		${PYPKGPREFIX}-${PKGNAME_MODULE}
COMMENT=		Python bindings for Xapian search engine
HOMEPAGE=		https://xapian.org/docs/bindings/python/
d7 1
a7 1
DEPENDS+=		${PYPKGPREFIX}-sphinx-[0-9]*:../../textproc/py-sphinx
d10 1
a10 2

.if (${PYPKGPREFIX} == py27)
d25 1
a25 1
.if (${PYPKGPREFIX} != py27)
d32 1
@


1.2
log
@Collect patches for xapian in a common subdirectory. Put distinfo for
modules into a separate file as well. Don't hard-code -lstdc++ for
broken ancient OpenBSD versions of GCC. Sync p5-Xapian PLIST with
reality.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2017/07/10 17:34:04 schmonz Exp $
d13 1
a13 1
PYTHON_3_OR_EMPTY=	# empty
d16 1
a16 1
PYTHON_3_OR_EMPTY=	3
d19 1
a19 1
PLIST_SUBST+=		PYTHON_3_OR_EMPTY=${PYTHON_3_OR_EMPTY:Q}
d25 1
a25 1
	${CHMOD} +x ${DESTDIR}${PREFIX}/share/doc/xapian-bindings/python${PYTHON_3_OR_EMPTY}/examples/*.py
@


1.1
log
@Add Xapian language bindings for C#, Lua, Perl, PHP, Python, Ruby, and Tcl.
@
text
@d1 1
a1 1
# $NetBSD$
d15 1
a15 1
CONFIGURE_ARGS+=	--with-python3
d26 4
@

