On 2024-08-24 01:47 -0400, Paul Dufresne wrote: > Package: ncurses-base > Version: 6.5-2 > Severity: wishlist > > Dear Maintainer, > > While trying to compile the haskell example program for module ncurses, > I got the following error: > While compiling: got: > Failed to build ncurses-0.2.16. > Build log ( > /home/paul/.cabal/logs/ghc-9.4.7/ncurses-0.2.16-d863cb3651dc4baa1ab3f5d6ea2fc5693727b1cc5282fbebd8a1f4a6edda73e5.log > ): > Warning: ncurses.cabal:85:21: version operators used. To use version operators > the package needs to specify at least 'cabal-version: >= 1.8'. > Configuring ncurses-0.2.16... > Preprocessing library for ncurses-0.2.16.. > c2hs: C header contains errors: > > dist/build/UI/NCurses/Enums.chs.h:140: (column 25) [ERROR] >>> Unknown > identifier! > Cannot find a definition for `KEY_EVENT' in the header file. > > Error: cabal: Failed to build ncurses-0.2.16 (which is required by > exe:ncurses1 from ncurses1-0.1.0.0). See the build log above for details. > > Contacting the old maintainer of the ncurses Haskell module he said: > Regarding the specific case of KEY_EVENT, it was removed from the ncurses > public API (a backwards-incompatible breaking change), and the configure flag > `--enable-wgetch-events` is required to re-enable it. I recommend filing a bug > against the Debian ncurses package asking them to set that flag when building. > > I downloaded latest source code, and: > paul@albukerk:~/Téléchargements/ncurses-6.4-20230520$ ./configure --help|grep > event > --enable-wgetch-events compile with wgetch-events code > paul@albukerk:~/Téléchargements/ncurses-6.4-20230520$ > > So the option seems to still exist.
It exists but has been deprecated four years ago, in the same patchlevel that removed the KEY_EVENT macro. See the NEWS file: ,---- | 20200817 | + mark wgetch-events feature as deprecated. | + prevent KEY_EVENT from appearing in curses.h unless the configure | option --enable-wgetch-events is used (report by Werner Fink). `---- > So... this is a wish request to build with this flag enable. Not going to happen, I am afraid. You could try the following change to haskell-ncurses:
diff --git a/lib/UI/NCurses/Enums.chs b/lib/UI/NCurses/Enums.chs index 73a64f5..ef47d00 100644 --- a/lib/UI/NCurses/Enums.chs +++ b/lib/UI/NCurses/Enums.chs @@ -195,7 +195,6 @@ enum hsncurses_Key , hsncurses_KEY_UNDO = KEY_UNDO , hsncurses_KEY_MOUSE = KEY_MOUSE , hsncurses_KEY_RESIZE = KEY_RESIZE -, hsncurses_KEY_EVENT = KEY_EVENT }; #endc
Note however that it might not work anyway[1]. Good luck, Sven 1. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=971267#10