./textproc/enchant2, Generic spell checking library

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ]


Branch: CURRENT, Version: 2.8.16, Package name: enchant2-2.8.16, Maintainer: pkgsrc-users

Enchant aims to provide a simple but comprehensive abstraction for
dealing with different spell checking libraries in a consistent way. A
client, such as a text editor or word processor, need not know
anything about a specific spell-checker, and since all back-ends are
plugins, new spell-checkers can be added without needing any change to
the program using Enchant.

Enchant in pkgsrc can work with the following spell checkers:

Hunspell
GNU Aspell
Zemberek

Note that while enchant, when configured by options to use a spell
checker, simply requires the spell checker package. It does nothing
about dictionaries for particular languages.


Required to run:
[devel/glib2] [textproc/hunspell-en_US] [textproc/hunspell]

Required to build:
[devel/unittest-cpp]

Package options: hunspell

Master sites:

Filesize: 1236.609 KB

Version history: (Expand)


CVS history: (Expand)


   2026-05-03 15:08:57 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
enchant2: update to 2.8.16.

2.8.16 (May 1, 2026)
--------------------

This release fixes a bug introduced in 2.8.14: after rejecting a word for
not containing at least one letter, enchant(1) would skip the rest of the
line.
   2026-02-16 11:38:03 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
enchant2: update to 2.8.15.

2.8.15 (February 13, 2026)
--------------------------

This release fixes two bugs related to personal word lists.

First, removing a word that happens to be at the end of a personal word list
file has not worked since 2.7.0.

Secondly, the way that personal word lists are merged with the current
session has been changed so that personal word list words now appear in
suggestions with providers that support adding words to the current session
(Aspell and Hunspell). This previously worked, but hadn’t since at least
2.8.2. Thanks to the users and maintainers of jinx (spelling package for
Emacs that uses Enchant) for reporting and helping reproduce this bug.

A little code clean-up was also done.
   2025-11-24 10:13:05 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
enchant2: update to 2.8.14.

2.8.14 (November 20, 2025)
--------------------------

This release fixes a test failure in the previous release, and improves
enchant(1)’s word division algorithm, so that it only considers words that
contain at least one letter. (Words may contain characters that aren’t
letters, but Enchant was for example considering “1900” to be a word, which
is probably not helpful.)

2.8.13 (November 19, 2025)
--------------------------

This release fixes a bug in the word division algorithm of enchant(1)
introduced in 2.8.4, which itself was attempting to fix bugs introduced in
the previous release. This could have caused a crash, but it seems we were
saved by careful bounds checking in GLib. Instead, it merely meant that
characters not valid at the end of a word were not removed as they should be
before spell-checking.

Note that this bug only affected users of the enchant(1) program, for
example Emacs users using it via Emacs’s “ispell” command. Users using
libenchant (i.e. most users) were not affected.
   2025-10-23 22:40:24 by Thomas Klausner | Files touched by this commit (2999)
Log message:
*: recursive bump for pcre2

Running an old binary against the new pcre doesn't work:
/usr/pkg/lib/libpcre2-8.so.0: version PCRE2_10.47 required by \ 
/usr/pkg/lib/libglib-2.0.so.0 not defined
   2025-08-03 11:51:43 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
enchant2: update to 2.8.12.

2.8.12 (July 28, 2025)
----------------------

This release fixes a crash introduced in the previous release, where a
dictionary could have a dangling reference to a provider.
   2025-07-27 10:48:43 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
enchant2: update to 2.8.11.

2.8.11 (July 22, 2025)
----------------------

This release fixes a crash when an empty language tag is given, for example
to `enchant-2 -p`.

Various aspects of the internal provider API have been simplified, and an
obsolete header file removed.
   2025-07-18 18:25:39 by Amitai Schleier | Files touched by this commit (1)
Log message:
enchant2: adjust PLIST.Darwin to match installed .so.
   2025-07-01 21:19:52 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
enchant2: update to 2.8.10.

2.8.10 (June 21, 2025)
----------------------

This release fixes a crash bug and some space leaks in the Hunspell provider
that were introduced in 2.8.7.

Thanks to @haansn08 and @mike-fabian for the report and debug information.

The handling of PWL dictionaries has also been simplified slightly.

2.8.9 (June 17, 2025)
---------------------

This release fixes a critical bug in the Aspell provider that crept into
2.8.7. Thanks to @hamkg for the report and @chenrui333 analyzing the
problem.

A test has been added that simply runs `enchant-lsmod -list-dicts`, which
would have caught this bug and the double-free fixed in the previous
release.

2.8.8 (June 16, 2025)
---------------------

The previous release had a “double-free” bug that typically caused a crash
on application start-up. Thanks to @AdamWill of Fedora for a quick bug
report that enabled me to locate and instantly fix the bug (apologies!).

A test to detect this sort of bug in future will be forthcoming.

2.8.7 (June 15, 2025)
---------------------

This release stops the Hunspell provider from doing partial matching of
dictionary tags. This fixes an odd situation where it was possible for
Aspell to have an actual “en” dictionary, which would be shown by
enchant-lsmod(1), but when requesting that language, if Hunspell was
configured to take precedence over Aspell, and there was, for example, an
“en_US” dictionary installed for Hunspell, then that would be used. Thanks
to @digitcrusher for filing the bug and helping with the solution.

The providers code has been formatted more consistently, simplified in
places, and made more robust when memory allocation fails. Thanks again to
@digitcrusher for spotting some simplifications I missed.

The minimum version of GLib required is now 2.76, which is quite recent
(from a bit over 2 years ago at the time of writing). Use of this enables
some deprecated APIs to be dropped, and some slight code simplification.

Finally, the compiler warnings used with GCC have been adjusted to turn off
useless warnings, especially for Vala-generated C.