Path to this page:
./
textproc/enchant2,
Generic spell checking library
Branch: CURRENT,
Version: 2.8.19nb1,
Package name: enchant2-2.8.19nb1,
Maintainer: pkgsrc-usersEnchant 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:
Version history: (Expand)
- (2026-07-13) Updated to version: enchant2-2.8.19nb1
- (2026-07-05) Updated to version: enchant2-2.8.18
- (2026-07-02) Updated to version: enchant2-2.8.17
- (2026-05-03) Updated to version: enchant2-2.8.16
- (2026-02-16) Updated to version: enchant2-2.8.15
- (2025-11-24) Updated to version: enchant2-2.8.14
CVS history: (Expand)
| 2026-07-13 13:48:00 by Ryo ONODERA | Files touched by this commit (2) |
Log message:
textproc/enchant2: Use current tarball. The previous one may be withdrwawn.
* Bump PKGREVISION.
|
2026-07-13 11:56:48 by Thomas Klausner | Files touched by this commit (2) |  |
Log message:
enchant2: update to 2.8.19.
2.8.19 (July 7, 2026)
---------------------
This release adds a provider for WinSpell: Windows users can now use the
native system spelling checker via Enchant. Many thanks to Moritz Mechelk
for working on this, and the HexChat authors whose code he used.
The change in the previous release to update the tests and require the use
of C++20 have been reverted. I had not realised how old some systems were
that people are still packaging up-to-date Enchant on! We’re back to
requiring C++11.
|
| 2026-07-06 07:26:34 by Thomas Klausner | Files touched by this commit (1) |
Log message:
enchant2: remove file from PLIST.Darwin
Not installed any longer according to bulk build
|
2026-07-05 14:11:14 by Thomas Klausner | Files touched by this commit (2) |  |
Log message:
enchant2: update to 2.8.18.
2.8.18 (July 4, 2026)
---------------------
This release fixes compatibility with the latest Vala compiler, version
0.56.19. The problem was Enchant’s fault; the change in behaviour by valac,
of returning different values for some return types when a method
precondition failed, was fine. The Enchant code was allowing these checks to
fail rather than validating arguments. Manual validation has been added for
most arguments, except the “self” argument for “method calls”, which is
usually the argument in first position, e.g. the EnchantBroker pointer
argument to all enchant_broker_* APIs. Applications can call
`g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL)` or equivalent to make these
tests cause an assertion failure; otherwise, critical errors will be logged,
and in some cases a different value will be returned by the API from that
previously returned. I have not changed the major version of the library,
since the return code in such cases was always undocumented: the APIs
require non-NULL pointers.
enchant(1) now assumes UTF-8 input and produces only UTF-8 output.
Previously, it assumed the system locale for input, and converted to the
system locale on output. This worked badly on Windows, where the system
locale is often reported as a legacy 8-bit code page, even when the user
environment is Unicode, and was also incorrect in cases where enchant(1) was
reading from a file in some other encoding, usually UTF-8.
The macOS spelling checker used to have a hard-wired list of languages it
supported. Drop this, and support all languages supported by the system.
Further, do not offer e.g. an “en_US” dictionary when “en” is requested. (A
similar change to the Hunspell provider was made in version 2.8.7.)
Some code clean-up has been done, removing some unused code, and making some
minor improvements to the build system. I’m surprised how in a codebase of
modest size (a few thousand lines for the main library, spelling providers
and command-line utilities) that I’ve completely rewritten and worked on for
some years, I still find things that don’t need to be there!
The tests have been updated to drop the use of the deprecated codecvt APIs,
and instead use u8 string literals. As a result, Enchant’s build system now
requires C++20. Do let me know if this is a problem; as far as I can tell,
that should be fine for packagers on up-to-date systems, as C++20 has been
supported by the main compilers for a few years now.
|
2026-07-01 23:20:22 by Thomas Klausner | Files touched by this commit (2) |  |
Log message:
enchant2: update to 2.8.17.
2.8.17 (June 29, 2026)
----------------------
Make enchant silently ignore -C flag, for better Emacs compatibility.
|
2026-05-03 15:08:57 by Thomas Klausner | Files touched by this commit (2) |  |
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) |  |
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) |  |
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.
|