#1129974 xapers: Xapian 2 compatibility

#1129974#5
Date:
2026-03-06 21:30:18 UTC
From:
To:
Xapian 2.0.0 is close to release - currently we're on the second release
candidate:

https://lists.xapian.org/pipermail/xapian-discuss/2026-March/thread.html

This is packaged in Debian experimental (versioned as 1.5.1-1) and the
CI run for xapian-bindings shows it breaks xapers:

https://ci.debian.net/packages/x/xapers/unstable/arm64/69257709/

I had a quick look at the xapers code and it's still using the
xapian.NumberValueRangeProcessor class which was deprecated in 1.4.x and
removed in 2.0.0.

The replacement is xapian.NumberRangeProcessor which will work in 1.4.x
too.  I've attached an entirely untested patch.

Cheers,
    Olly

#1129974#10
Date:
2026-03-06 22:49:55 UTC
From:
To:
Control: tags -1 +patch

I've now successfully test built xapers using python3-xapian from
experimental with this patch applied.

While the build succeeded, there were two test failures, but these
seem to unrelated to Xapian and are due to the `pipes` module being
removed in Python 3.13 (as noted at
https://docs.python.org/3/library/pipes.html) - here's the first,
the other is very similar:

     FAIL   export all
	    --- all.58.expected	2026-03-06 22:40:20.862108121 +0000
	    +++ all.58.output	2026-03-06 22:40:20.857447579 +0000
	    @@ -1,4 +0,0 @@
	    -TMP_DIRECTORY/export/5.pdf
	    -TMP_DIRECTORY/export/Creation_of_the_γ-verses.pdf
	    -TMP_DIRECTORY/export/Multicolor_cavity_sadness.pdf
	    -TMP_DIRECTORY/export/When_the_liver_meats_the_pavement.pdf
    Traceback (most recent call last):
      File "<frozen runpy>", line 198, in _run_module_as_main
      File "<frozen runpy>", line 88, in _run_code
      File "/build/reproducible-path/xapers-0.9.0/xapers/__main__.py", line 536, in <module>
	main()
	~~~~^^
      File "/build/reproducible-path/xapers-0.9.0/xapers/__main__.py", line 401, in main
	cli.export(db, outdir, query)
	~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
      File "/build/reproducible-path/xapers-0.9.0/xapers/cli.py", line 439, in export
	import pipes
    ModuleNotFoundError: No module named 'pipes'
     FAIL   export query
	    --- all.59.expected	2026-03-06 22:40:21.008786649 +0000
	    +++ all.59.output	2026-03-06 22:40:21.005319686 +0000
	    @@ -1,2 +0,0 @@
	    -TMP_DIRECTORY/export/5.pdf
	    -TMP_DIRECTORY/export/Creation_of_the_γ-verses.pdf
    Traceback (most recent call last):
      File "<frozen runpy>", line 198, in _run_module_as_main
      File "<frozen runpy>", line 88, in _run_code
      File "/build/reproducible-path/xapers-0.9.0/xapers/__main__.py", line 536, in <module>
	main()
	~~~~^^
      File "/build/reproducible-path/xapers-0.9.0/xapers/__main__.py", line 401, in main
	cli.export(db, outdir, query)
	~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
      File "/build/reproducible-path/xapers-0.9.0/xapers/cli.py", line 439, in export
	import pipes
    ModuleNotFoundError: No module named 'pipes'

Cheers,
    Olly