Package Details: enchant-pure 1.6.1.r74.e412b19-1

Git Clone URL: https://aur.archlinux.org/enchant-pure.git (read-only)
Package Base: enchant-pure
Description: A wrapper library for pure and generic spell checking for all languages, supporting Aspell and Myspell/Hunspell backend engines
Upstream URL: https://github.com/AbiWord/enchant
Licenses: LGPL
Conflicts: enchant
Provides: enchant
Submitter: sbmomeni
Maintainer: sbmomeni
Last Packager: sbmomeni
Votes: 9
Popularity: 0.000308
First Submitted: 2013-07-31 19:47
Last Updated: 2017-01-17 10:22

Dependencies (3)

Required by (168)

Sources (3)

Latest Comments

sbmomeni commented on 2017-01-17 10:25

@notuxius
Fixed.

notuxius commented on 2017-01-15 16:09

@sbmomeni errors upon build:

/usr/include/hunspell/w_char.hxx:47:8: error: using typedef-name ‘w_char’ after ‘struct’
struct w_char {
^~~~~~
In file included from atypes.hxx:18:0,
from myspell_checker.cpp:41:
w_char.hxx:11:3: note: ‘w_char’ has a previous declaration here
} w_char;
^~~~~~
In file included from /usr/include/hunspell/hunspell.hxx:77:0,
from myspell_checker.cpp:52:
/usr/include/hunspell/w_char.hxx:70:8: error: redefinition of ‘struct replentry’
struct replentry {
^~~~~~~~~
In file included from atypes.hxx:18:0,
from myspell_checker.cpp:41:
w_char.hxx:14:8: error: previous definition of ‘struct replentry’
struct replentry {
^~~~~~~~~
In file included from /usr/include/hunspell/hunspell.hxx:78:0,
from myspell_checker.cpp:52:
/usr/include/hunspell/atypes.hxx: In function ‘void HUNSPELL_WARNING(FILE*, const char*, ...)’:
/usr/include/hunspell/atypes.hxx:51:20: error: redefinition of ‘void HUNSPELL_WARNING(FILE*, const char*, ...)’
static inline void HUNSPELL_WARNING(FILE*, const char*, ...) {}
^~~~~~~~~~~~~~~~
In file included from myspell_checker.cpp:41:0:
atypes.hxx:10:20: note: ‘void HUNSPELL_WARNING(FILE*, const char*, ...)’ previously defined here
static inline void HUNSPELL_WARNING(FILE *, const char *, ...) {}
^~~~~~~~~~~~~~~~
In file included from /usr/include/hunspell/hunspell.hxx:78:0,
from myspell_checker.cpp:52:
/usr/include/hunspell/atypes.hxx: At global scope:
/usr/include/hunspell/atypes.hxx:101:8: error: redefinition of ‘struct guessword’
struct guessword {
^~~~~~~~~
In file included from myspell_checker.cpp:41:0:
atypes.hxx:83:8: error: previous definition of ‘struct guessword’
struct guessword {
^~~~~~~~~
In file included from /usr/include/hunspell/hunspell.hxx:78:0,
from myspell_checker.cpp:52:
/usr/include/hunspell/atypes.hxx:107:34: error: conflicting declaration ‘typedef class std::vector<std::__cxx11::basic_string<char> > mapentry’
typedef std::vector<std::string> mapentry;
^~~~~~~~
In file included from myspell_checker.cpp:41:0:
atypes.hxx:89:8: note: previous declaration as ‘struct mapentry’
struct mapentry {
^~~~~~~~
In file included from /usr/include/hunspell/hunspell.hxx:78:0,
from myspell_checker.cpp:52:
/usr/include/hunspell/atypes.hxx:108:27: error: conflicting declaration ‘typedef class std::vector<short unsigned int> flagentry’
typedef std::vector<FLAG> flagentry;
^~~~~~~~~
In file included from myspell_checker.cpp:41:0:
atypes.hxx:94:8: note: previous declaration as ‘struct flagentry’
struct flagentry {
^~~~~~~~~
In file included from /usr/include/hunspell/hunspell.hxx:78:0,
from myspell_checker.cpp:52:
/usr/include/hunspell/atypes.hxx:110:8: error: redefinition of ‘struct patentry’
struct patentry {
^~~~~~~~
In file included from myspell_checker.cpp:41:0:
atypes.hxx:99:8: error: previous definition of ‘struct patentry’
struct patentry {
^~~~~~~~
myspell_checker.cpp: In member function ‘bool MySpellChecker::checkWord(const char*, size_t)’:
myspell_checker.cpp:171:26: warning: ‘int Hunspell::spell(const char*, int*, char**)’ is deprecated [-Wdeprecated-declarations]
if (myspell->spell(word8))
^
In file included from myspell_checker.cpp:52:0:
/usr/include/hunspell/hunspell.hxx:131:20: note: declared here
H_DEPRECATED int spell(const char* word, int* info = NULL, char** root = NULL);
^~~~~
myspell_checker.cpp: In member function ‘char** MySpellChecker::suggestWord(const char*, size_t, size_t*)’:
myspell_checker.cpp:199:40: warning: ‘int Hunspell::suggest(char***, const char*)’ is deprecated [-Wdeprecated-declarations]
*nsug = myspell->suggest(&sugMS, word8);
^
In file included from myspell_checker.cpp:52:0:
/usr/include/hunspell/hunspell.hxx:141:20: note: declared here
H_DEPRECATED int suggest(char*** slst, const char* word);
^~~~~~~
make[2]: *** [Makefile:560: myspell_checker.lo] Error 1
make[2]: Leaving directory '/tmp/yaourt-tmp-not/aur-enchant-pure/src/enchant-1.6.1/src/myspell'
make[1]: *** [Makefile:617: all-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-not/aur-enchant-pure/src/enchant-1.6.1/src'
make: *** [Makefile:498: all-recursive] Error 1
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build enchant-pure.

sbmomeni commented on 2016-09-14 10:24

@notuxius
Updated.

notuxius commented on 2016-09-14 02:26

i get the following errors upon build:

myspell_checker.cpp: In member function ‘bool MySpellChecker::checkWord(const char*, size_t)’:
myspell_checker.cpp:154:12: error: ‘MAXWORDLEN’ was not declared in this scope
if (len > MAXWORDLEN || !g_iconv_is_valid(m_translate_in))
^~~~~~~~~~
myspell_checker.cpp:160:13: error: ‘MAXWORDLEN’ was not declared in this scope
char word8[MAXWORDLEN + 1];
^~~~~~~~~~
myspell_checker.cpp:161:14: error: ‘word8’ was not declared in this scope
char *out = word8;
^~~~~
myspell_checker.cpp: In member function ‘char** MySpellChecker::suggestWord(const char*, size_t, size_t*)’:
myspell_checker.cpp:178:12: error: ‘MAXWORDLEN’ was not declared in this scope
if (len > MAXWORDLEN
^~~~~~~~~~
myspell_checker.cpp:186:13: error: ‘MAXWORDLEN’ was not declared in this scope
char word8[MAXWORDLEN + 1];
^~~~~~~~~~
myspell_checker.cpp:187:14: error: ‘word8’ was not declared in this scope
char *out = word8;
^~~~~
myspell_checker.cpp: In member function ‘bool MySpellChecker::checkWord(const char*, size_t)’:
myspell_checker.cpp:173:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [Makefile:420: myspell_checker.lo] Error 1
make[2]: Leaving directory '/tmp/yaourt-tmp-nurunner/aur-enchant-pure/src/enchant-1.6.0/src/myspell'
make[1]: *** [Makefile:427: all-recursive] Error 1
make[1]: Leaving directory '/tmp/yaourt-tmp-nurunner/aur-enchant-pure/src/enchant-1.6.0/src'
make: *** [Makefile:379: all-recursive] Error 1
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build enchant-pure.

sbmomeni commented on 2013-08-03 13:40

The 'dbus-glib' dependency is updated to indicate its minimum required version.

sbmomeni commented on 2013-08-01 06:40

@cfr42
About Hunspell:
The description is updated :) Thanks for notice =)

About inclusion of hspell:
If the 'hspell' could not be supported without making it one of dependencies of 'enchant', I would completely agree with your reasoning =)
But there is another solution: Did you see the 'enchant-voikko' <https://aur.archlinux.org/packages/enchant-voikko/> package? It depends on 'enchant' and adds 'voikko' backend (for Finnish) by adding its .so file.

Here, they can create 'enchant-hspell' which depends on 'enchant' and adds 'hspell' .so files.
I'm going to submit the 'enchant-hspell' package soon =)

cfr42 commented on 2013-07-31 23:04

Also I think you may have misunderstood 'minimalist'. If the only way to provide hspell functionality through enchant is to build against it, I think Arch's philosophy supports its inclusion. Lots of packages include dependencies which are "not required" because they provide functionality. Some users may not want all of those functions but the packages have to be configured to support as many users as possible within reasonable limits. For most languages, it is easy to split off the language-specific stuff from the spell checker framework (enchant, aspell, hunspell) but it seems the best option for Hebrew happens to be language specific (hspell). So there is a completely logical reason to treat Hebrew differently. Lots of packages have dependencies I don't personally need. If I don't want them, I can always use ABS. I don't see why this case is any different.

cfr42 commented on 2013-07-31 22:57

I think you should alter the description to reflect the fact that this does also support hunspell since that provides at least a little more support for the claim that it supports "all" languages.

sbmomeni commented on 2013-07-31 20:03

This package provides 'enchant' package.
It fixes some of compile time warnings by the 'warnings-fix.patch' file.
It only depends on packages which are required to support 'Aspell' and 'Myspell' backends.

Unfortunately, the 'enchant' package in the 'extra' repository has non-required dependencies, contradicting the Arch's minimalist approach.
It depends upon the 'hspell' and installs 'Hebrew' dictionary on all systems by default.
This is reported at <https://bugs.archlinux.org/task/36278>.
However, maintainer refuses to omit 'hspell' dependency, while the 'hunspell-he' package is already available in the 'extra' repo (at <https://www.archlinux.org/packages/extra/x86_64/hunspell-he/>) for 'Hebrew' language. Argued reason can be summarized as: "hspell is a small dependency and it outperforms hunspell-he, so I want to keep it there".

If you feel bad about this contradicting situation, please show your support by voting for this pure package.