Giter Club home page Giter Club logo

Comments (12)

manisandro avatar manisandro commented on June 2, 2024

Mh no, this looks like a fundamental API change in enchant 2.x, I'll need to investigate further.

from qtspell.

manisandro avatar manisandro commented on June 2, 2024

Fixed in bf87066, thanks for the report.

from qtspell.

foghawk avatar foghawk commented on June 2, 2024

Version detection doesn't appear to work correctly:

/tmp/packerbuild-1000/qtspell/qtspell/src/qtspell/src/Checker.cpp: In function ‘enchant::Broker* get_enchant_broker()’:
/tmp/packerbuild-1000/qtspell/qtspell/src/qtspell/src/Checker.cpp:44:29: error: ‘instance’ is not a member of ‘enchant::Broker’
     return enchant::Broker::instance();
                             ^~~~~~~~
make[2]: *** [CMakeFiles/qtspell.dir/build.make:295: CMakeFiles/qtspell.dir/src/Checker.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/qtspell.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
$ pkg-config --modversion enchant
2.1.2
$ pkg-config --exists enchant-2; echo "$?"
1

I believe line 28 of CMakeLists.txt should be not PKG_CHECK_MODULES(ENCHANT enchant-2) but PKG_CHECK_MODULES(ENCHANT enchant>=2). I am not aware of any distro's providing a separate pkg-config file for enchant version 2.

I'd put in a pullreq but I haven't tested this (installing through AUR as a gIR dependency, would have to write a patch for the PKGBUILD). Maybe later.

from qtspell.

eli-schwartz avatar eli-schwartz commented on June 2, 2024

Popping in here after helping @foghawk debug this in the #archlinux support channel...

Specifically, I don't understand where PKG_CHECK_MODULES(ENCHANT enchant-2) is supposed to get the enchant-2.pc file (which is being specified as the MODULE) from. That's a very non-ideal way to perform version comparison that would only make sense on distros that wanted to provide parallel installs and make the old version the default.

Honestly, I'd just revert to PKG_CHECK_MODULES(ENCHANT REQUIRED enchant), no version checking at all, and then use IF(ENCHANT_VERSION VERSION_GREATER_EQUAL 2) to test which version you have...

from qtspell.

manisandro avatar manisandro commented on June 2, 2024

enchant-2 is the name upstream uses for the enchant-2.x pkgconfig file, see [1]. Enchant-1.x and 2.x are supposed to be side-by-side installable. I suppose if downstream packages changed this, then yes, I'll need to extend the logic to both check for enchant-2 as well as enchant with VERSION_GREATER_EQUAL 2.

[1] https://github.com/AbiWord/enchant/blob/master/Makefile.am#L9

from qtspell.

kbabioch avatar kbabioch commented on June 2, 2024

Still does not build for me (qtspell 0.8.3, enchant 2.1.2):

Scanning dependencies of target qtspell
[ 85%] Building CXX object CMakeFiles/qtspell.dir/src/Checker.cpp.o
/home/kbabioch/PKGBUILD/qtspell/src/qtspell/src/Checker.cpp: In function 'enchant::Broker* get_enchant_broker()':
/home/kbabioch/PKGBUILD/qtspell/src/qtspell/src/Checker.cpp:44:29: error: 'instance' is not a member of 'enchant::Broker'
     return enchant::Broker::instance();
                             ^~~~~~~~
make[2]: *** [CMakeFiles/qtspell.dir/build.make:295: CMakeFiles/qtspell.dir/src/Checker.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:169: CMakeFiles/qtspell.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Shouldn't there be a switch to override the enchant version, if autodetection fails?

from qtspell.

manisandro avatar manisandro commented on June 2, 2024

Looks like you need enchant-2.1.3 or newer, since that's when they introduced the -2 suffix to the pkgconfig file and libraries. I'll add some code to also handle versions older thant 2.1.3.

from qtspell.

manisandro avatar manisandro commented on June 2, 2024

Please try latest master.

from qtspell.

kbabioch avatar kbabioch commented on June 2, 2024

Yes, latest master does work fine. Thank you very much.

from qtspell.

manisandro avatar manisandro commented on June 2, 2024

OK cool

from qtspell.

kbabioch avatar kbabioch commented on June 2, 2024

Are you planning on making a new release, so I can properly package this for Arch Linux?

from qtspell.

manisandro avatar manisandro commented on June 2, 2024

Done

from qtspell.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.