xapian
36 hours ago[omega] Define __WIN32__/__WIN64__ in config.h master
Olly Betts [Mon, 22 Apr 2024 21:21:04 +0000 (09:21 +1200)]
[omega] Define __WIN32__/__WIN64__ in config.h

Copy over the code from xapian-core to do this.

Spotted by Baran Demir.

12 days agoFix probe for -Bsymbolic-functions for MSVC
Olly Betts [Thu, 11 Apr 2024 21:19:17 +0000 (09:19 +1200)]
Fix probe for -Bsymbolic-functions for MSVC

MSVC doesn't support this flag, but it only emits a warning when it
is used and that warning didn't match any of the patterns we already
check for so we were detecting it as supported.

12 days agoDocument NM=dumpbin for MSVC and use in CI
Olly Betts [Thu, 11 Apr 2024 21:18:00 +0000 (09:18 +1200)]
Document NM=dumpbin for MSVC and use in CI

You can get away without it for a static library build which is what
CI currently builds, but it seems to be another necessary step towards
building a DLL.

12 days ago[ci] Fix netbsd job to upgrade existing packages
Olly Betts [Thu, 11 Apr 2024 21:10:08 +0000 (09:10 +1200)]
[ci] Fix netbsd job to upgrade existing packages

pkg_add was failing at the request to install pcre2 because it was
already installed, but at an older version that was now available.

13 days agoStop linking with --enable-runtime-pseudo-reloc
Olly Betts [Thu, 11 Apr 2024 01:54:55 +0000 (13:54 +1200)]
Stop linking with --enable-runtime-pseudo-reloc

We were requiring this for cygwin and mingw, but from the documentation
it should only be needed for a library which exports data symbols,
which we don't do, and the build works without it.

13 days agoDocument LD=link for MSVC and use in CI
Olly Betts [Wed, 10 Apr 2024 23:33:51 +0000 (11:33 +1200)]
Document LD=link for MSVC and use in CI

You can get away without it for a static library build which is what
CI currently builds, but it's necessary to build a DLL (which is
going to need additional work, but this is a start).

2 weeks agoINSTALL: Improve MSVC build instructions
Olly Betts [Tue, 9 Apr 2024 22:23:08 +0000 (10:23 +1200)]
INSTALL: Improve MSVC build instructions

Thanks to Baran Demir for feedback.

2 weeks agoAllow EBADF from setsockopt() on non-socket
Olly Betts [Fri, 5 Apr 2024 08:28:36 +0000 (21:28 +1300)]
Allow EBADF from setsockopt() on non-socket

This seems to be returned by several platforms (seen on FreeBSD, macOS,
DragonflyBSD).

2 weeks agoFix build under __WIN32__
Olly Betts [Fri, 5 Apr 2024 08:25:48 +0000 (21:25 +1300)]
Fix build under __WIN32__

2 weeks agoFix problems with previous commit
Olly Betts [Fri, 5 Apr 2024 05:26:11 +0000 (18:26 +1300)]
Fix problems with previous commit

2 weeks agoResolve SIGPIPE issues on NetBSD
Olly Betts [Fri, 5 Apr 2024 03:37:41 +0000 (16:37 +1300)]
Resolve SIGPIPE issues on NetBSD

These seem to be due to SO_NOSIGPIPE not working correctly there so
use MSG_NOSIGNAL instead for NetBSD.

2 weeks agoomindex: Make robust to stdin or stdout being closed
Olly Betts [Thu, 4 Apr 2024 20:59:20 +0000 (09:59 +1300)]
omindex: Make robust to stdin or stdout being closed

The code which runs an external filter now better handles stdin
and/or stdout of the parent process having been closed.

2 weeks agoRevert "Use SOCK_NOPIPE to fix testcase failures on NetBSD"
Olly Betts [Thu, 4 Apr 2024 18:40:11 +0000 (07:40 +1300)]
Revert "Use SOCK_NOPIPE to fix testcase failures on NetBSD"

Further testing shows this doesn't actually fix the problem.  The
affected testcases don't fail every time and they just happened to
all pass when I originally tested this fix.

This reverts commit 7cede66a90fd8cb0c051864af97a5c5e0cdfc5f4.

2 weeks agoRemove SIGPIPE handlers in SignalRedirector dtor
Olly Betts [Thu, 4 Apr 2024 17:24:15 +0000 (06:24 +1300)]
Remove SIGPIPE handlers in SignalRedirector dtor

2 weeks agoAdjust internal naming in tcpsrv test harness code
Olly Betts [Wed, 3 Apr 2024 23:30:37 +0000 (12:30 +1300)]
Adjust internal naming in tcpsrv test harness code

Rename ServerData::UNUSED_PID to ServerData::DEAD_PID since this is only
used for entries below first_unused_server_data on which we've called
kill_remote(). We don't need to flag unused entries with indices >=
first_unused_server_data because we know they're unused by their
indices.

Rename ServerData::set_pid() to ServerData::init() and initialise
db_internal to nullptr there to completely eliminate the possibility
we can use a stale db_internal pointer.

2 weeks agoFix flintlock when we don't have OFD fcntl locks
Olly Betts [Wed, 3 Apr 2024 21:53:18 +0000 (10:53 +1300)]
Fix flintlock when we don't have OFD fcntl locks

2 weeks agoFix to build again on platforms without SIGPIPE
Olly Betts [Wed, 3 Apr 2024 20:22:17 +0000 (09:22 +1300)]
Fix to build again on platforms without SIGPIPE

3 weeks agoSimplify fd handling when launching prog remote
Olly Betts [Wed, 3 Apr 2024 08:49:28 +0000 (21:49 +1300)]
Simplify fd handling when launching prog remote

With a little care, we can arrange that the two dup2() calls clear
the close-on-exec flag for both stdin and stdout.

3 weeks agoSimplify fd handling for flintlock
Olly Betts [Wed, 3 Apr 2024 08:19:16 +0000 (21:19 +1300)]
Simplify fd handling for flintlock

This simplifies the case when we hold a traditional fcntl() lock in a
child process.  As well as being simpler, we no longer end up with
fds without close-on-exec set in the parent process in corner cases.

3 weeks agoTrack and report testcase failing with SIGPIPE
Olly Betts [Tue, 2 Apr 2024 18:38:10 +0000 (07:38 +1300)]
Track and report testcase failing with SIGPIPE

3 weeks agoSkip testcase remotefailure* on NetBSD
Olly Betts [Tue, 2 Apr 2024 18:37:04 +0000 (07:37 +1300)]
Skip testcase remotefailure* on NetBSD

The failures are due to SIGPIPE, but I've not tracked down exactly what
is triggering it yet.

3 weeks ago[ci] Add job running on NetBSD
Olly Betts [Tue, 2 Apr 2024 04:33:30 +0000 (17:33 +1300)]
[ci] Add job running on NetBSD

3 weeks agoSkip testcase keepalive1 on NetBSD
Olly Betts [Thu, 28 Mar 2024 23:32:31 +0000 (12:32 +1300)]
Skip testcase keepalive1 on NetBSD

Need to investigate more to find out why it fails, but meanwhile it
seems better to skip it so we can add a CI job for NetBSD.

3 weeks agoUse libtool 2.4.7 to bootstrap
Olly Betts [Tue, 2 Apr 2024 02:26:21 +0000 (15:26 +1300)]
Use libtool 2.4.7 to bootstrap

Fixes #825, reported by Ryan Schmidt.

3 weeks agoPut child into its own process group first
Olly Betts [Mon, 1 Apr 2024 02:56:00 +0000 (15:56 +1300)]
Put child into its own process group first

We expect killing the process group equal to the child's PID to kill the
child (plus any subprocesses), so it seems best to put it the child in
that process group as soon as possible.

3 weeks agoSet link_all_deplibs_CXX=no for NetBSD
Olly Betts [Mon, 1 Apr 2024 02:52:35 +0000 (15:52 +1300)]
Set link_all_deplibs_CXX=no for NetBSD

NetBSD also doesn't need dependency libraries to be explicitly
included in the link.

3 weeks agoUse SOCK_NOPIPE to fix testcase failures on NetBSD
Olly Betts [Mon, 1 Apr 2024 02:46:39 +0000 (15:46 +1300)]
Use SOCK_NOPIPE to fix testcase failures on NetBSD

Without this apitest seems to exit on the remotefailure* testcases.
SOCK_NOPIPE seems to solve this so presumably it was happening due to
SIGPIPE.

3 weeks agoFix comment typo
Olly Betts [Mon, 1 Apr 2024 02:46:28 +0000 (15:46 +1300)]
Fix comment typo

3 weeks agoFix comment typo
Olly Betts [Fri, 29 Mar 2024 08:11:13 +0000 (21:11 +1300)]
Fix comment typo

3 weeks agoInclude <errno.h> for sys_errlist
Olly Betts [Thu, 28 Mar 2024 20:50:55 +0000 (09:50 +1300)]
Include <errno.h> for sys_errlist

We already do this for the configure check but were failing to when
actually using sys_errlist, which probably affects at least NetBSD.

6 weeks agoExtend testcase to cover the IN_GROUP2 case too
Olly Betts [Thu, 7 Mar 2024 04:07:14 +0000 (17:07 +1300)]
Extend testcase to cover the IN_GROUP2 case too

6 weeks agoQueryParser: do not try to parse unbroken words as group terms
Robert Stepanek [Thu, 25 Jan 2024 11:57:21 +0000 (12:57 +0100)]
QueryParser: do not try to parse unbroken words as group terms

Fixes a bug where QueryParser fails with an error when parsing
the sequence of: term, whitespace, unbroken words, term. The
underlying issue is that unbroken words can not be part of a
group according to the lemon grammar.

As the combination of unbroken words and terms is highly unlikely
to ever form a multi-term synonym, this patch changes the query
parser to leave group term mode after having parsed unbroken words.

Fixes #331

7 weeks agoresolver.h: use AI_NUMERICSERV only when defined
Sergey Fedorov [Wed, 28 Feb 2024 10:36:13 +0000 (17:36 +0700)]
resolver.h: use AI_NUMERICSERV only when defined

2 months agoSet link_all_deplibs_CXX=no for DragonflyBSD
Olly Betts [Fri, 2 Feb 2024 04:47:26 +0000 (17:47 +1300)]
Set link_all_deplibs_CXX=no for DragonflyBSD

DragonflyBSD also doesn't need explicitly linking with
dependency libraries.

2 months ago[ci] Add job running of DragonflyBSD
Olly Betts [Fri, 2 Feb 2024 01:55:43 +0000 (14:55 +1300)]
[ci] Add job running of DragonflyBSD

2 months ago[ci] Tweak freebsd job
Olly Betts [Fri, 2 Feb 2024 01:55:32 +0000 (14:55 +1300)]
[ci] Tweak freebsd job

Improve comment and eliminate unnecessary references to freebsd.

2 months agoAvoid compiler warning during GCC version check
Olly Betts [Fri, 2 Feb 2024 01:23:14 +0000 (14:23 +1300)]
Avoid compiler warning during GCC version check

Apply the same change already applied to core in
253a2caa04e00af5513ecf279f7e18978cda732c

2 months agoconfigure.ac: Use _libs instead of lt_cv_objdir
Olly Betts [Fri, 2 Feb 2024 00:09:31 +0000 (13:09 +1300)]
configure.ac: Use _libs instead of lt_cv_objdir

We get _libs via a documented interface, whereas lt_cv_objdir is
seems to be an implementation detail.

2 months ago[php] Use PHP_SHLIB_SUFFIX for extension module
Olly Betts [Thu, 1 Feb 2024 22:45:45 +0000 (11:45 +1300)]
[php] Use PHP_SHLIB_SUFFIX for extension module

Previously we used the extension libtool thought appropriate for
the current platform.  I'm not aware of a platform where the two
don't agree, but should they not agree we should use what PHP expects.

2 months ago[perl] Simplify uninstall-local
Olly Betts [Thu, 1 Feb 2024 22:18:25 +0000 (11:18 +1300)]
[perl] Simplify uninstall-local

We force libtool to use the shared object extension that Perl expects by
specifying `-shrext $(PERL_SO)` so we can just use $(PERL_SO)
when uninstalling, like we already do for other languages where we
use `-shrext`.

2 months ago[perl] Fix `make uninstall` to remove shared object
Olly Betts [Thu, 1 Feb 2024 21:53:13 +0000 (10:53 +1300)]
[perl] Fix `make uninstall` to remove shared object

Restore a line accidentally removed in
283a5be17676e9c933a0e4eb86ee3266e8b4890b

2 months ago[ci] Upgrade fully to download-artifact@v4
Olly Betts [Wed, 31 Jan 2024 02:22:51 +0000 (15:22 +1300)]
[ci] Upgrade fully to download-artifact@v4

2 months ago[ci] Upgrade to setup-node@v4 action
Olly Betts [Wed, 31 Jan 2024 02:08:12 +0000 (15:08 +1300)]
[ci] Upgrade to setup-node@v4 action

This should fix another "Node.js 16 actions are deprecated" warning.

2 months ago[ci] Upgrade to cache@v4 action
Olly Betts [Wed, 31 Jan 2024 02:04:02 +0000 (15:04 +1300)]
[ci] Upgrade to cache@v4 action

This should fix another "Node.js 16 actions are deprecated" warning.

2 months ago[ci] Upgrade to v4 of artifact actions
Olly Betts [Wed, 31 Jan 2024 02:00:27 +0000 (15:00 +1300)]
[ci] Upgrade to v4 of artifact actions

This should fix a lot of "Node.js 16 actions are deprecated" warnings.

We also now tell upload-artifact not to try to compress the already
compressed tarballs which should save some time and CPU cycles.

2 months ago[ci] Fix option for disabling checkout progress
Olly Betts [Wed, 31 Jan 2024 01:59:05 +0000 (14:59 +1300)]
[ci] Fix option for disabling checkout progress

This should actually be "show-progress", not "progress" (I looked at
the original PR text which incorrectly suggests it's called "progress").

2 months ago[ci] Update to v4 of checkout action
Olly Betts [Wed, 31 Jan 2024 00:20:23 +0000 (13:20 +1300)]
[ci] Update to v4 of checkout action

This fixes two "Node.js 16 actions are deprecated" warnings.

I've also made use of the new "progress" setting to disable progress
output from the git checkout to avoid logging a lot of useless
messages.

2 months ago[bootstrap] Use SWIG 4.2.0
Olly Betts [Wed, 31 Jan 2024 00:09:50 +0000 (13:09 +1300)]
[bootstrap] Use SWIG 4.2.0

Includes typemaps for std:string_view.

Improves efficiency of passing Unicode strings from Python to Xapian API
functions.

3 months ago[glass] Reject invalid blocksize in version file
Olly Betts [Fri, 19 Jan 2024 02:37:44 +0000 (15:37 +1300)]
[glass] Reject invalid blocksize in version file

Throw DatabaseCorruptError if value is out of range or not a power of
two.

3 months agoImprove fix for invalid Btree level count
Olly Betts [Fri, 19 Jan 2024 01:32:27 +0000 (14:32 +1300)]
Improve fix for invalid Btree level count

With the previous fix we still accessed an out of range value when
destroying the database (but for some reason neither valgrind nor
ubsan detect this).

Instead reject out of range values as we decode them from disk.

See #824.

3 months ago[ci] Fix macos job
Olly Betts [Fri, 19 Jan 2024 00:52:00 +0000 (13:52 +1300)]
[ci] Fix macos job

Update homebrew workaround to work for any Python 3.x, not just 3.11.

3 months agounittest: Fix fd leakage on exception in ioblock1
Olly Betts [Thu, 18 Jan 2024 22:38:16 +0000 (11:38 +1300)]
unittest: Fix fd leakage on exception in ioblock1

3 months agounittest: Improve sparse file detection for ZFS
Olly Betts [Thu, 18 Jan 2024 22:14:05 +0000 (11:14 +1300)]
unittest: Improve sparse file detection for ZFS

We now use SEEK_HOLE to detect sparse file support and allow for
a block size of up to 128K.

The existing check didn't work well on ZFS where st_blocks reports
the number of compressed blocks, and also lags behind when data is
is committed to the journal but not yet written to the file itself.
This means we can't use st_blocks here because it could suggest a
sparse file when there isn't actually support.

SEEK_HOLE is specified by POSIX and seems to be widely supported.
On platforms without it or on an FS with a > 128K block size we
will skip the tests involving a 4GB file, but that's acceptable.

Fixes #823, reported by someplaceguy.

3 months agoShip new test db
Olly Betts [Tue, 16 Jan 2024 22:07:34 +0000 (11:07 +1300)]
Ship new test db

3 months agoCompress empty non-optional table to zero size
Olly Betts [Tue, 16 Jan 2024 21:41:08 +0000 (10:41 +1300)]
Compress empty non-optional table to zero size

Previously a non-optional table would always be compacted to at least
one block. This isn't important in general as the non-optional tables
are not likely to be empty in a real database but it's helpful for
making small test database and it seems weird that compaction was making
a database much larger in percentage terms in this edge case.

3 months agoCheck Btree level value from disk is in range
Olly Betts [Tue, 16 Jan 2024 21:33:41 +0000 (10:33 +1300)]
Check Btree level value from disk is in range

Avoids potential out of range access on corrupt DB.

Fixes #824, reported by group13.

3 months ago[ci] Fix Emscripten job
Olly Betts [Wed, 10 Jan 2024 21:39:19 +0000 (10:39 +1300)]
[ci] Fix Emscripten job

Pin emsdk to 3.1.50 for now as with 3.1.51 emcc -c seems to fail to
work.

3 months ago[python] Fix `make check` when builddir!=srcdir
Olly Betts [Wed, 10 Jan 2024 04:59:20 +0000 (17:59 +1300)]
[python] Fix `make check` when builddir!=srcdir

3 months ago[ci] Fix checkpatch job to work for PRs
Olly Betts [Wed, 10 Jan 2024 03:13:34 +0000 (16:13 +1300)]
[ci] Fix checkpatch job to work for PRs

We need to specify the remote, i.e. origin/$GITHUB_BASE_REF

3 months agoAdjust new comments to match existing
Olly Betts [Tue, 9 Jan 2024 02:10:40 +0000 (15:10 +1300)]
Adjust new comments to match existing

3 months agoDo not treat fullwidth Latin and symbols as unbroken script
Robert Stepanek [Mon, 8 Jan 2024 12:47:32 +0000 (13:47 +0100)]
Do not treat fullwidth Latin and symbols as unbroken script

Up until now all Unicode codepoints in the Halfwidth and
Fullwidth Forms Block (U+FF00..U+FFEF) were treated as
unbroken script. This causes terms that consist of fullwidth
Latin characters in this range to not being lowercased
before indexing, resulting in queries not finding such text.

This patch changes word-breaker to only consider halfwidth
Katakana and Hanul characters as unbroken script, handling
all fullwidth Latin characters, numbers and symbols in this
block as broken script.

4 months ago[perl] Fix POD conversion when builddir!=srcdir
Olly Betts [Mon, 18 Dec 2023 19:47:05 +0000 (08:47 +1300)]
[perl] Fix POD conversion when builddir!=srcdir

4 months ago[perl] Simplify install-data-local and uninstall-local
Olly Betts [Mon, 18 Dec 2023 02:49:23 +0000 (15:49 +1300)]
[perl] Simplify install-data-local and uninstall-local

The HTML POD docs are generated during the build so we don't need
to handle them being in srcdir.

4 months ago[python] Stop passing srcdir & abs_builddir to tests
Olly Betts [Mon, 18 Dec 2023 01:56:17 +0000 (14:56 +1300)]
[python] Stop passing srcdir & abs_builddir to tests

No longer used since a6ce127b3ce9c673dc085d4079c1171e75cedf44

4 months ago[ci] Test build with builddir != srcdir
Olly Betts [Mon, 18 Dec 2023 00:35:31 +0000 (13:35 +1300)]
[ci] Test build with builddir != srcdir

This is a configuration we aim to support so we want to catch
regressions in support for it.

4 months agoomegatest.pl: Remove unused DB setup
Olly Betts [Thu, 14 Dec 2023 04:23:35 +0000 (17:23 +1300)]
omegatest.pl: Remove unused DB setup

We never use this value, discovered after spotting it contained
a literal backslash letter "n" sequence due to use of single quotes.

4 months agoomegatest.pl: Fix program name in error message
Olly Betts [Tue, 12 Dec 2023 04:31:00 +0000 (17:31 +1300)]
omegatest.pl: Fix program name in error message

4 months agoRemove 2 bogus assertions from recent changes
Olly Betts [Sat, 9 Dec 2023 09:02:11 +0000 (22:02 +1300)]
Remove 2 bogus assertions from recent changes

4 months agoFix typo in assertion condition
Olly Betts [Sat, 9 Dec 2023 08:39:32 +0000 (21:39 +1300)]
Fix typo in assertion condition

4 months agoRemove left-over at_end() method
Olly Betts [Sat, 9 Dec 2023 04:57:16 +0000 (17:57 +1300)]
Remove left-over at_end() method

Not needed since 8af24b64198c35b416899eef088c70fce1f2c706

4 months agoFix assertion build
Olly Betts [Sat, 9 Dec 2023 04:57:01 +0000 (17:57 +1300)]
Fix assertion build

4 months agoEliminate TermList::at_end()
Olly Betts [Fri, 8 Dec 2023 19:46:30 +0000 (08:46 +1300)]
Eliminate TermList::at_end()

Instead have next() and skip_to() signal that the end has been
reached by `return this;` (with another non-NULL pointer signifying
a prune and NULL indicating the normal "success" situation).

This is a bit faster, and simplifies the code overall.

4 months agoSimplify OrTermList
Olly Betts [Fri, 8 Dec 2023 19:22:07 +0000 (08:22 +1300)]
Simplify OrTermList

Don't cache the current termnames in left_current and right_current
since reading the termname from a child now just gives a const reference
and so is cheap.  Instead store the result of std::string::compare() on
the two current children, which avoids the cost of re-computing this.

4 months agoOptimise allterms next() for terms without nuls
Olly Betts [Fri, 8 Dec 2023 05:54:01 +0000 (18:54 +1300)]
Optimise allterms next() for terms without nuls

Most terms don't contain any nuls, and for such terms the key for the
first chunk in the termlist table is just the termname so we don't
need to do any decoding in allterms next().  This seems to be ~8.4%
faster in a simple test of iterating allterms via xapian-delve.

4 months agoDevirtualise TermList::get_termname()
Olly Betts [Fri, 8 Dec 2023 05:22:51 +0000 (18:22 +1300)]
Devirtualise TermList::get_termname()

Several TermList subclasses already use the pattern of having a
std::string current_term member which holds the term at the current
position.  Let's embrace this pattern, and have a std::string
current_term in the TermList class, and then get_termname() becomes
a non-virtual method returning a const reference to this, which
avoids a virtual method call, and (probably more significantly)
some std::string copying.

4 months agoEnable adddoc2 and adddoc5 tests for multi
Olly Betts [Thu, 7 Dec 2023 04:07:17 +0000 (17:07 +1300)]
Enable adddoc2 and adddoc5 tests for multi

Just skip the TermIterator::get_termfreq() calls for sharded databases.

4 months agoRevert change accidentally included in previous commit
Olly Betts [Thu, 7 Dec 2023 03:46:02 +0000 (16:46 +1300)]
Revert change accidentally included in previous commit

4 months agoDocument TermIterator::get_termfreq() quirk
Olly Betts [Thu, 7 Dec 2023 03:08:51 +0000 (16:08 +1300)]
Document TermIterator::get_termfreq() quirk

In the case of a TermIterator from termlist_begin() on a Document
from a sharded database, you get term frequencies from just the
shard.

Fixes #423

4 months agoMSet::get_eset(): Be lazier
Olly Betts [Tue, 5 Dec 2023 04:02:09 +0000 (17:02 +1300)]
MSet::get_eset(): Be lazier

Don't fetch the collection frequency for each term unless we're
using the Bo1EWeight expansion scheme which actually needs it.

In a simple test this reduced the time taken to do a search and
generate expand terms by a third.

Partly addresses #264.

4 months agoFix probe for rdoc
Olly Betts [Sat, 2 Dec 2023 20:39:42 +0000 (09:39 +1300)]
Fix probe for rdoc

The aim is to try to use the rdoc which matches the Ruby interpreter
found as a default (unless the user has explicitly overridden by
running ./configure RDOC=/path/to/rdoc or similar), but the way that
was being done didn't actually work and this default never kicked in.

This is likely to only be a problem if you're overriding
RUBY=/path/to/ruby but not overriding RDOC as well.

Reported by Vitaly Chikunov on the xapian-devel list.

4 months agoDocument allterms_begin() iteration order
Olly Betts [Fri, 1 Dec 2023 18:43:11 +0000 (07:43 +1300)]
Document allterms_begin() iteration order

Thanks to Eric Wong for querying this.

5 months ago[ci] Update appveyor for Unicode 15.1 update
Olly Betts [Tue, 7 Nov 2023 23:52:47 +0000 (12:52 +1300)]
[ci] Update appveyor for Unicode 15.1 update

5 months ago[ci] Fix yaml syntax
Olly Betts [Tue, 7 Nov 2023 19:14:19 +0000 (08:14 +1300)]
[ci] Fix yaml syntax

5 months ago[ci] Use vmactions/freebsd-vm@v1
Olly Betts [Tue, 7 Nov 2023 19:05:22 +0000 (08:05 +1300)]
[ci] Use vmactions/freebsd-vm@v1

This action now runs on Linux instead of macOS and should fix the
bootloop problems we've been hitting.

5 months ago[ci] Fix comment typo
Olly Betts [Tue, 7 Nov 2023 19:05:08 +0000 (08:05 +1300)]
[ci] Fix comment typo

5 months ago[ci] Add shorter timeout to freebsd job
Olly Betts [Tue, 7 Nov 2023 02:04:49 +0000 (15:04 +1300)]
[ci] Add shorter timeout to freebsd job

The action we use is currently buggy and can hang in a bootloop
which by default spins for ~6 hours before timing out.

5 months agonew-release: Commit the script used to update trac
Olly Betts [Mon, 6 Nov 2023 22:28:08 +0000 (11:28 +1300)]
new-release: Commit the script used to update trac

This partly automates updates to trac for a new release.

5 months agoUpdate to latest config.guess and config.sub
Olly Betts [Mon, 6 Nov 2023 04:03:13 +0000 (17:03 +1300)]
Update to latest config.guess and config.sub

6 months agoUpdate to Unicode 15.1.0
Olly Betts [Wed, 18 Oct 2023 00:08:23 +0000 (13:08 +1300)]
Update to Unicode 15.1.0

6 months agoInitialise GError* to nullptr
Olly Betts [Tue, 17 Oct 2023 02:31:13 +0000 (15:31 +1300)]
Initialise GError* to nullptr

The "Rules for use of GError" in the GLIB docs say:

    A GError* must be initialized to NULL before passing its address to
    a function that can report errors.

https://docs.gtk.org/glib/error-reporting.html#rules-for-use-of-gerror

6 months agoEliminate swig-depcomp script eliminate-swig-depcomp
Olly Betts [Tue, 17 Oct 2023 01:12:16 +0000 (14:12 +1300)]
Eliminate swig-depcomp script

There are now SWIG options we can use instead (the final missing
piece was -MP, added to SWIG back in 2013, only a year after we
added this script!)

6 months agoAvoid triggering SIGPIPE in library code
Olly Betts [Mon, 9 Oct 2023 23:17:02 +0000 (12:17 +1300)]
Avoid triggering SIGPIPE in library code

On Unix-like platforms we want to avoid generating SIGPIPE when writing
to a socket when the other end has been closed since signals break the
encapsulation of what we're doing inside the library - either user code
would need to handle the SIGPIPE, or we set a signal handler for SIGPIPE
but that would handle *any* SIGPIPE in the process, not just those we
might trigger, and that could break user code which expects to trigger
and handle SIGPIPE.

We don't need SIGPIPE since we can check errno==EPIPE instead (which is
actually simpler to do).

It seems all current Unix-like platforms now support SO_NOSIGPIPE or
MSG_NOSIGNAL, so currently we just fall back to setting SIGPIPE to
SIG_IGN.  If there are actually current platforms which have SIGPIPE
without SO_NOSIGPIPE or MSG_NOSIGNAL then we can look at other ways to
avoid generating the signal.

6 months agoRemoved outdated and experimental Vagrantfile
Olly Betts [Mon, 9 Oct 2023 22:14:36 +0000 (11:14 +1300)]
Removed outdated and experimental Vagrantfile

Our Vagrantfile installed Ubuntu bionic for which LTS supported ended
earlier this year.  Also Vagrant recently switched to BSL which is not a
FOSS licence.

6 months agoRemove conditional code for xlC
Olly Betts [Mon, 2 Oct 2023 22:12:42 +0000 (11:12 +1300)]
Remove conditional code for xlC

We now require C++ 17 which xlC doesn't support; its successor is
"Open XL C++" which is based on clang and doesn't define __xlC__:

https://www.ibm.com/docs/en/openxl-c-and-cpp-aix/17.1.1?topic=macros-unsupported-compiler

7 months agobackport-source-packages: buster backports closed
Olly Betts [Tue, 29 Aug 2023 22:37:13 +0000 (10:37 +1200)]
backport-source-packages: buster backports closed

Looks like backports.debian.org no longer accepts uploads, but leave
code in place for now in case someone wants to build a backport locally.

7 months agobackport-source-packages: Add Debian bookworm
Olly Betts [Tue, 29 Aug 2023 22:24:02 +0000 (10:24 +1200)]
backport-source-packages: Add Debian bookworm

8 months agoOnly report signal address when we know what it is
Olly Betts [Tue, 22 Aug 2023 06:00:50 +0000 (18:00 +1200)]
Only report signal address when we know what it is

On platforms without both sigaction() and SA_SIGINFO we no longer
report a NULL address for any signal would have an associated
address.

8 months agoquest: Adjust --help output formatting fix
Olly Betts [Tue, 22 Aug 2023 05:52:24 +0000 (17:52 +1200)]
quest: Adjust --help output formatting fix

Restore things to how they were formatted in 1.4.x as that seems
more readable.

8 months ago[ci] Add debian-stable job
Olly Betts [Tue, 22 Aug 2023 04:21:40 +0000 (16:21 +1200)]
[ci] Add debian-stable job

8 months ago[ci] Sort out clang-sanitisers jobs
Olly Betts [Tue, 22 Aug 2023 04:19:47 +0000 (16:19 +1200)]
[ci] Sort out clang-sanitisers jobs

It seems we need -fsanitize-recover=all for suppressions to work.

Also just disable the bindings for now as they seem hard to make work
with sanitisers enabled.