Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 629818 - app-office/abiword-3.0.2-r1 (with app-text/enchant-2.1.0) - enchant_checker.cpp:130:53: error: ‘enchant_dict_free_suggestions’ was not declared in this scope
Summary: app-office/abiword-3.0.2-r1 (with app-text/enchant-2.1.0) - enchant_checker.c...
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
Depends on:
Blocks: enchant-2
  Show dependency tree
Reported: 2017-09-03 20:25 UTC by Juergen Rose
Modified: 2020-04-13 16:44 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---

build.log (build.log,486.44 KB, text/x-log)
2017-09-03 20:25 UTC, Juergen Rose
Enchant-2 patch from Arch (enchant-2.patch,1013 bytes, patch)
2019-02-13 20:19 UTC, Dennis Lamm
Details | Diff
enchant-2-better-but-autoconf-not-works.patch (enchant-2.patch,1.74 KB, patch)
2019-04-26 16:05 UTC, Ulenrich
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Juergen Rose 2017-09-03 20:25:23 UTC
Created attachment 492196 [details]

'MAKEOPTS=-j1 emerge -v1 abiword' fails with:
e/evolution-data-server -I/usr/include/nss -I/usr/include/nspr -I/usr/include/libsecret-1 -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/librsvg-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/freetype2 -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_0 -I/usr/include -I../../../.. -I../../../../src/af/ev/gtk -I../../../../src/af/ev/xp -I../../../../src/af/gr/gtk -I../../../../src/af/gr/xp -I../../../../src/af/util/unix -I../../../../src/af/util/xp -I../../../../src/af/xap/gtk -I../../../../src/af/xap/xp -Wall -Wextra -Wsign-compare -Wpointer-arith -Wchar-subscripts -Wwrite-strings -Wmissing-noreturn -Wunused -Wpointer-arith -Wshadow -march=native -O2 -pipe -Wno-overloaded-virtual -c enchant_checker.cpp  -fPIC -DPIC -o .libs/enchant_checker.o
enchant_checker.cpp: In member function ‘virtual UT_GenericVector<unsigned int*>* EnchantChecker::_suggestWord(const UT_UCSChar*, size_t)’:
enchant_checker.cpp:130:53: error: ‘enchant_dict_free_suggestions’ was not declared in this scope
   enchant_dict_free_suggestions (m_dict, suggestions);
enchant_checker.cpp: In member function ‘virtual bool EnchantChecker::addToCustomDict(const UT_UCSChar*, size_t)’:
enchant_checker.cpp:142:75: error: ‘enchant_dict_add_to_personal’ was not declared in this scope
   enchant_dict_add_to_personal (m_dict, utf8.utf8_str(), utf8.byteLength());
enchant_checker.cpp: In member function ‘virtual bool EnchantChecker::isIgnored(const UT_UCSChar*, size_t) const’:
enchant_checker.cpp:153:83: error: ‘enchant_dict_is_in_session’ was not declared in this scope
  return enchant_dict_is_in_session (m_dict, ignore.utf8_str(), ignore.byteLength()) != 0;
make[5]: *** [Makefile:839: enchant_checker.lo] Error 1

root@lynxold:/home/rose(53)# emerge --info '=app-office/abiword-3.0.2-r1::gentoo'
Portage 2.3.8 (python 3.4.6-final-0, default/linux/amd64/13.0/desktop, gcc-6.4.0, glibc-2.25-r4, 4.12.10 x86_64)
                         System Settings
System uname: Linux-4.12.10-x86_64-Intel-R-_Core-TM-_i7-3630QM_CPU_@_2.40GHz-with-gentoo-2.4.1
KiB Mem:    16104228 total,   2126752 free
KiB Swap:   50331644 total,  49679016 free
Timestamp of repository gentoo: Sun, 03 Sep 2017 16:30:01 +0000
Head commit of repository gentoo: a2023adbf400a1fd419bdfd7656312885dd1eb24
sh bash 4.4_p12
ld GNU ld (Gentoo 2.27 p1.1) 2.27
distcc[2347] (dcc_trace_version) distcc 3.2rc1 x86_64-pc-linux-gnu; built Aug 28 2017 12:27:53 [disabled]
app-shells/bash:          4.4_p12::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.24.2::gentoo
dev-lang/python:          2.7.13-r100::sage-on-gentoo, 3.4.6::gentoo, 3.5.3::gentoo, 3.6.1-r1::gentoo
dev-util/cmake:           3.9.1::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.4.1-r1::gentoo
sys-apps/openrc:          0.29::gentoo
sys-apps/sandbox:         2.10-r4::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.9.6-r4::gentoo, 1.11.6-r2::gentoo, 1.13.4-r1::gentoo, 1.15.1-r1::gentoo
sys-devel/binutils:       2.27-r1::gentoo, 2.28-r2::gentoo, 2.28.1::gentoo
sys-devel/gcc:            5.4.0-r3::gentoo, 6.3.0::gentoo, 6.4.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r4::gentoo
sys-devel/make:           4.2.1-r1::gentoo
sys-kernel/linux-headers: 4.11::gentoo (virtual/os-headers)
sys-libs/glibc:           2.25-r4::gentoo

    location: /usr/portage_lynx
    sync-type: rsync
    sync-uri: rsync://
    priority: -1000

    location: /usr/local/portage
    masters: gentoo
    priority: 0

    location: /var/lib/cpan
    masters: gentoo
    priority: 1

    location: /var/lib/g-octave
    masters: gentoo
    priority: 2

    location: /var/lib/layman/ago
    masters: gentoo
    priority: 50

    location: /var/lib/layman/sage-on-gentoo
    masters: gentoo science
    priority: 50

    location: /var/lib/layman/science
    masters: gentoo
    priority: 50

    location: /var/lib/layman/tlp
    masters: gentoo
    priority: 50

    location: /var/lib/layman/x11
    masters: gentoo
    priority: 50

Installed sets: @system
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA PUEL Intel-SDP dlj-1.1 skype-eula skype- googleearth AdobeFlash-11.x cadsoft Oracle-BCLA-JavaSE MakeMKV-EULA NVIDIA-CUDA Nero-AAC-EULA GIMPS"
CFLAGS="-march=native -O2 -pipe"
CONFIG_PROTECT="/etc /etc/stunnel/stunnel.conf /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/chromium/policies/managed/chrome-gnome-shell.json /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/opt/chrome/policies/managed/chrome-gnome-shell.json /etc/php/apache2-php7.1/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cli-php7.1/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs clean-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
USE="64bit R X Xaw3d a52 aac acl acpi admin afs alsa amd64 amr ao apache2 apng applet archive armadillo arpack asf aspell assistant atlas audacious audiofile aufs automap automount barcode bash-completion berkdb blas blast bluetooth bluray boost branding btrfs bzip2 cairo cdda cddb cdf cdio cdparanoia cdr cg cgi chm cilk clang cli cmake collada consolekit contrib cracklib crypt css cups curl cxx daap db dbi dbm dbus declarative designer devhelp device-mapper dga dia digitalradio djvu doc dot dri ds2490 ds9097 ds9097u dts dv dvb dvd dvdr dvi dynamicplugin eds egl elf emacs emboss emf encode epiphany evo examples excel exif expat extensions extra extras faac faad fam ffmpeg fftw firefox fits flac fltk fontconfig foomaticdb fortran fortran95 fpm fpx ftp fuse gcj gd gdal gdbm gedit geoip geolocation geos gfortran gif gimp git glade glamor glib glpk gml gmp gnome gnome-keyring gnuplot gnutls gold gphoto2 gpm grammar graphics graphtft graphviz grass gsl gsm gstreamer gtk gtk3 gudev guile hdaps hddtemp hdf hdf5 hdri html http httpd hvm hwdb iconv icq icu id3tag ide imagemagick imap inotify introspection ipod ipv6 irda ithreads jadetex java jbig jit john jpeg jpeg2k kate kde kdepim kdrive kerberos keymap kpathsea kvm ladspa lame lapack latex lcms ldap lensfun libffi libgda libkms libnotify libsamplerate lirc live lm_sensors lua lzma lzo mad mail maildir mapnik math matroska media-library mercurial mikmod mkl mng mod modules mono motif mozilla mp3 mp4 mpeg mpi mpi-threads mplayer mtp multilib multimedia musepack musicbrainz mysql mysqli nautilus ncurses neXt netcdf netpbm network networking nfs nls nntp nptl nsplugin ntfs ntp numpy obex objc ocaml ocr octave odbc ofa ogdi ogg opencl opencv openexr opengl openmp openvg pam pango pcre pda pdf pdl2 perl plasma plotutils plugins png podcast policykit portaudio posix postgres postscript ppds ppp preview-latex proj projectm pstricks pulseaudio python q16 q32 qemu qhull qml qt3support qt4 qt5 quicktime raw readline reiserfs reports rle romio rpc rrdcgi rrdtool rtlsdr sage samba sasl schroedinger science sdk sdl seccomp secure-delete semantic-desktop server session shout sip slang slp smart smbclient smp sms sndfile snmp soap sockets sound soup sox speex spell sql sqlite ssl startup-notification stlport subtitles subversion sudo suexec svg svm swig systemd szip t1lib tbb tcl tcpd tex tex4ht theora thesaurus thinkpad threads thunderbird tidy tiff tk tools truetype udev udisks unicode upower usb utempter v4l v4l2 vaapi vala valgrind vdpau video vim-syntax virt-network virtualbox visio vorbis vpx vtk wav wayland webdav webdav-serf webkit wifi wmf wxwidgets x264 xa xattr xcb xen xetex xft xine xml xmlreader xmlrpc xpm xv xvid xvmc yaml youtube zlib zsh-completion zvbi" ABI_X86="64" ALSA_CARDS="intel8x0" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_core authn_dbm authn_default authn_file authz_core authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgid dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info lbmethod_byrequests log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif slotmem_shm so socache_shmcb speling status unique_id unixd userdir usertrack vhost_alias" APACHE2_MPMS="worker" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="canon fuji ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog sensors thermal" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="nss" ELIBC="glibc" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 navcom ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt tripmate tsip ublox nmea0183 nmea2000 passthrough" GRUB_PLATFORMS="emu efi-64 pc xen" INPUT_DEVICES="keyboard mouse evdev synaptics void" KERNEL="linux" L10N="de en fr ru" LCD_DEVICES="cfontz hd44780 mtxorb ncurses X lcd2usb lcdlinux png usblcd SureElec" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en fr ru" LIRC_DEVICES="devinput" NETBEANS_MODULES="apisupport cnd dlight enterprise ergonomics groovy gsf harness ide identity j2ee java mobility nb php profiler websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby22" USERLAND="GNU" VIDEO_CARDS="nouveau intel i965 displaylink" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

                        Package Settings

app-office/abiword-3.0.2-r1::gentoo was built with the following:
USE="cups eds goffice grammar introspection latex math plugins readline spell thesaurus wmf -calendar -collab -debug -map -ots -redland -wordperfect" ABI_X86="(64)"

root@lynxold:/home/rose(54)# emerge -pqv '=app-office/abiword-3.0.2-r1::gentoo'
[ebuild   R   ] app-office/abiword-3.0.2-r1  USE="cups eds goffice grammar introspection latex math plugins readline spell thesaurus wmf -calendar -collab -debug -map -ots -redland -wordperfect"
Comment 1 causality 2017-09-04 20:16:18 UTC
~amd64 system here.

I ran into this same error myself while trying to rebuild abiword-3.0.2-r1.

I noticed that I also had app-text/enchant-2.1.0 installed and that it was masked (!).  I never added any sort of entry to /etc/portage/package.unmask to install it.  I assume this means it was once marked ~unstable, at which point it was installed, and then was later masked?  

The current unmasked and unstable version is app-text/enchant-1.6.1.  A simple "emerge --oneshot enchant" downgraded mine from enchant-2.1.0 to enchant-1.6.1.  Therefore, the masked version is no longer installed.  The unstable one now is.

After doing this, I was able to successfully rebuild app-office/abiword-3.0.2-r1.

If there is a bug, it's that we ended up with a masked package installed that we never explicitly unmasked.  Another potential way to solve this is from looking at what abiword depends on:

# equery depends enchant
 * These packages depend on enchant:
app-office/abiword-3.0.2-r1 (spell ? >=app-text/enchant-1.2)

A constraint could be placed on this abiword dependency, to not accept a version of enchant greater than 1.6.
Comment 2 Dennis Lamm gentoo-dev 2019-02-13 20:19:13 UTC
Created attachment 565208 [details, diff]
Enchant-2 patch from Arch
Comment 3 Ulenrich 2019-04-26 16:05:00 UTC
Created attachment 574278 [details, diff]

I cannot figure out how configure works here, I have patched a lot, but rusult:
configure: error: Package requirements (
  fribidi >= 0.10.4
  glib-2.0 >= 2.6.0 gthread-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0
  libgsf-1 >= 1.14.18
  wv-1.0 >= 1.2.0
  enchant >= 2.1.1 gio-2.0 
  cairo-pdf cairo-ps pangocairo
  gtk+-3.0 >= 3.0.8 gtk+-unix-print-3.0 librsvg-2.0 >= 2.16.0 cairo-fc
 x11) were not met:

Package 'enchant', required by 'virtual:world', not found
Comment 4 Ulenrich 2019-05-04 19:02:08 UTC
making a local app-text/enchant-2.2.3.ebuild with apropriet symlinks, then all works fine with:
--- enchant-2.2.3.ebuild	2018-06-29 10:36:29.400214291 +0200
+++ enchant-2.2.3.ebuild	2019-05-03 17:36:46.663458583 +0200
@@ -42,4 +42,8 @@
 src_install() {
 	find "${D}" -name '*.la' -delete || die
+	ln -s ${D}/usr/lib64/pkgconfig/enchant-2.pc ${D}/usr/lib64/pkgconfig/enchant.pc || die
+	ln -s ${D}/usr/lib64/enchant-2     ${D}/usr/lib64/enchant || die
+	ln -s ${D}/usr/include/enchant-2   ${D}/usr/include/enchant || die
+	ln -s ${D}/usr/bin/enchant-2       ${D}/usr/bin/enchant || die

I don't know, why enchant-2 needs other dirs than enchant-1  ?

Comment 5 Mart Raudsepp gentoo-dev 2019-05-05 22:37:30 UTC
Because they (1.6 and 2.1.3+) are parallel-installable and thus install into different namespaces, so no files collide.
enchant-2 is p.masked due to all this needing to be sorted out; the most likely path forward will be to have different SLOTs for enchant (so you can install 1.6 and 2.2.x at the same time) and packages that don't work with enchant-2 yet, will simply depend on enchant-1 SLOT instead until they are patched to work with enchant-2 instead.
Comment 6 Mart Raudsepp gentoo-dev 2020-02-02 19:52:22 UTC
enchant:2 is now unmasked, so abiword could be hopefully patched to use that instead of enchant:0 eventually now. It could also use a small bump, but I looked that those still use enchant:0 upstream too.
Comment 7 Larry the Git Cow gentoo-dev 2020-04-13 16:44:32 UTC
The bug has been closed via the following commit(s):

commit 186b39b11516cc6b87f4e54d939208533160a0a8
Author:     David Seifert <>
AuthorDate: 2020-04-13 16:44:07 +0000
Commit:     David Seifert <>
CommitDate: 2020-04-13 16:44:07 +0000

    app-office/abiword: Remove old
    Package-Manager: Portage-2.3.99, Repoman-2.3.22
    Signed-off-by: David Seifert <>

 app-office/abiword/Manifest                        |   2 -
 app-office/abiword/abiword-3.0.2-r3.ebuild         | 168 ---------------------
 .../files/abiword-3.0.2-extern-C-template.patch    |  29 ----
 3 files changed, 199 deletions(-)