Subject: CVS commit: pkgsrc/textproc/enchant2
From: Thomas Klausner
Date: 2024-04-28 11:47:24
Message id: 20240428094724.BF747FA2C@cvs.NetBSD.org

Log Message:
enchant2: update to 2.7.2.

2.7.2 (April 27, 2024)
----------------------

This release fixes a bug introduced in version 2.7.0. when calling
providers’ check methods, that could cause a crash.

2.7.1 (April 25, 2024)
----------------------

This release fixes some build-system bugs that crept into 2.7.0. Thanks to
those who reported them and helped me diagnose them. In particular, building
without --enable-relocatable is fixed. Some minor long-standing bugs that
recently came to light with incorrect include paths were also fixed.

Detection of the user’s language has been updated to use a more modern and
standard method. This means that in particular the LANG environment variable
no longer overrides the LC_ALL and LC_MESSAGES environment variables, and
support is added for the LANGUAGE variable, which has highest priority. For
more details, see the documentation for the GLib function
g_get_language_names.

Minor code and documentation improvements were made.

2.7.0 (April 19, 2024)
----------------------

This release marks a major improvement in Enchant’s maintainability: the
main library has been translated into Vala, a modern object-oriented
language with automatic memory management that, like Enchant, is based on
GLib.

Developers and packagers need not worry: this release is API and
ABI-compatible with previous releases (with some minor changes, noted below,
that is unrelated to the use of Vala), and you do not even need a Vala
compiler to build it, thanks to Automake, which distributes the C source
files generated by the Vala compiler. The build-time and run-time
dependencies therefore remain unchanged.

The library code is 33% smaller, and the total code-base has reduced
by 12%. Thanks in particular to Vala’s more modern string and collection
handling, I anticipate it being much easier to add functionality in future.
The use of Vala may also be extended in future to those provider back-ends
written in C.

The provider API is now declared private. No third-party providers have been
available for Enchant for many years to my knowledge, and the only new
provider in the last ten years, Nuspell, was implemented by Nuspell’s
authors in Enchant. The provider interface has changed in this release; and
of course all the current providers have been updated, including the
still-experimental Zemberek provider.

There is a small change to the semantics of dictionaries: in the past,
requesting a dictionary with the same language tag twice from a given
provider returned the same dictionary object. This is no longer the case.
This allows an application to have multiple active spelling sessions with
the same broker object in any given language. Applications that relied on
this functionality must in future keep track of the identity of spelling
sessions themselves. I do not regard this as an API/ABI change, since it was
only documented in a vague way by saying that dictionaries were
“reference-counted”. This language has been removed from the documentation.

Finally, a big thank-you to Eric Scott Albright, who wrote the test suite,
and SIL, for funding his work. Enchant has an excellent test suite; one of
my first contributions to the project was to get the test suite running on
all platforms, as it was originally written just for Windows. It’s an
impressive set of tests that covers a huge range of normal and edge cases,
and has often saved me before now; but it has never been more valuable than
when rewriting the entire core library. Hopefully it has kept the number of
new bugs I’ve introduced to a minimum!

Files:
RevisionActionfile
1.39modifypkgsrc/textproc/enchant2/Makefile
1.6modifypkgsrc/textproc/enchant2/PLIST
1.28modifypkgsrc/textproc/enchant2/distinfo