Bug#1034549: libncurses-dev: ships header files that can't be compiled (ncurses_cfg.h)
Control: tags -1 fixed-upstream On 2023-04-19 17:02 -0400, Thomas Dickey wrote: > On Wed, Apr 19, 2023 at 08:20:40PM +0200, Sven Joachim wrote: >> On 2023-04-17 17:09 -0700, Steve Langasek wrote: >> >> > Package: libncurses-dev >> > Version: 6.4-2 >> > Severity: normal >> > >> > The libncurses-dev package ships several header files that can't be >> > compiled, because they depend on ncurses_cfg.h which is not available. >> > >> > $ grep -rl ncurses_cfg /usr/include/ >> > /usr/include/tic.h >> > /usr/include/curses.h >> > /usr/include/nc_tparm.h >> > $ >> >> The curses.h file is a false positive, as ncurses_cfg.h is only >> mentioned inside a comment: >> >> , >> | $ grep -A2 -B1 ncurses_cfg /usr/include/curses.h >> | /* >> | * We cannot define these in ncurses_cfg.h, since they require parameters >> to be >> | * passed (that is non-portable). >> | */ >> ` >> >> The other two files indeed #include the non-existent ncurses_cfg.h file. >> Perhaps surprisingly, this is actually done on purpose, as mentioned in >> the upstream NEWS file: >> >> , >> | 20170722 >> |+ add dependency upon ncurses_cfg.h to tic's header-files; any program >> | using tic-library will have to supply this file. Legacy tack >> | versions supply this file; ongoing tack development has dropped the >> | dependency upon tic-library and new releases will not be affected. >> ` > > yes... before I revised it in 2017 - > > https://invisible-island.net/ncurses/tack/CHANGES.html#t20170318 > > tack used internal entrypoints of ncurses, which I eliminated. > Version 1.07 and earlier do that, and could be built within > ncurses' source-tree (to get at those headers). The current > versions of tack use only term_entry.h, which is needed to > provide its editable-terminfo feature. > > While repology lists some older versions, I don't see a need to continue > the support for those. For the record, in the 20230423 patchlevel you dropped the support for these old tack versions, and the tic.h and nc_tparm.h header files are no longer installed. Thanks! :-) Cheers, Sven
Bug#1034549: libncurses-dev: ships header files that can't be compiled (ncurses_cfg.h)
On Wed, Apr 19, 2023 at 08:20:40PM +0200, Sven Joachim wrote: > On 2023-04-17 17:09 -0700, Steve Langasek wrote: > > > Package: libncurses-dev > > Version: 6.4-2 > > Severity: normal > > > > The libncurses-dev package ships several header files that can't be > > compiled, because they depend on ncurses_cfg.h which is not available. > > > > $ grep -rl ncurses_cfg /usr/include/ > > /usr/include/tic.h > > /usr/include/curses.h > > /usr/include/nc_tparm.h > > $ > > The curses.h file is a false positive, as ncurses_cfg.h is only > mentioned inside a comment: > > , > | $ grep -A2 -B1 ncurses_cfg /usr/include/curses.h > | /* > | * We cannot define these in ncurses_cfg.h, since they require parameters > to be > | * passed (that is non-portable). > | */ > ` > > The other two files indeed #include the non-existent ncurses_cfg.h file. > Perhaps surprisingly, this is actually done on purpose, as mentioned in > the upstream NEWS file: > > , > | 20170722 > | + add dependency upon ncurses_cfg.h to tic's header-files; any program > | using tic-library will have to supply this file. Legacy tack > | versions supply this file; ongoing tack development has dropped the > | dependency upon tic-library and new releases will not be affected. > ` yes... before I revised it in 2017 - https://invisible-island.net/ncurses/tack/CHANGES.html#t20170318 tack used internal entrypoints of ncurses, which I eliminated. Version 1.07 and earlier do that, and could be built within ncurses' source-tree (to get at those headers). The current versions of tack use only term_entry.h, which is needed to provide its editable-terminfo feature. While repology lists some older versions, I don't see a need to continue the support for those. https://repology.org/project/tack/versions Those headers would be needed if there were some application using "ticlib", but that doesn't build if we have ncurses+tinfo, so there aren't any users. > Supplying an empty ncurses_cfg.h file might be sufficient for your > purposes, but I don't know what these are. It would supply values for the #if statements: tic.h #if NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR #if HAVE_LONG_FILE_NAMES #ifdef TRACE #ifndef TERMINFO #ifdef NCURSES_INTERNALS #if BROKEN_LINKER nc_tparm.h #ifndef NC_TPARM_included #ifndef TPARM_ARG #ifdef NCURSES_TPARM_ARG #if NCURSES_TPARM_VARARGS #ifdef NCURSES_INTERNALS term_entry.h has a few (and tack's configure-script sets them as needed): #ifdef NCURSES_INTERNALS #if NCURSES_USE_DATABASE #if NCURSES_USE_TERMCAP #if NCURSES_XNAMES -- Thomas E. Dickey https://invisible-island.net signature.asc Description: PGP signature
Bug#1034549: libncurses-dev: ships header files that can't be compiled (ncurses_cfg.h)
On 2023-04-17 17:09 -0700, Steve Langasek wrote: > Package: libncurses-dev > Version: 6.4-2 > Severity: normal > > The libncurses-dev package ships several header files that can't be > compiled, because they depend on ncurses_cfg.h which is not available. > > $ grep -rl ncurses_cfg /usr/include/ > /usr/include/tic.h > /usr/include/curses.h > /usr/include/nc_tparm.h > $ The curses.h file is a false positive, as ncurses_cfg.h is only mentioned inside a comment: , | $ grep -A2 -B1 ncurses_cfg /usr/include/curses.h | /* | * We cannot define these in ncurses_cfg.h, since they require parameters to be | * passed (that is non-portable). | */ ` The other two files indeed #include the non-existent ncurses_cfg.h file. Perhaps surprisingly, this is actually done on purpose, as mentioned in the upstream NEWS file: , | 20170722 | + add dependency upon ncurses_cfg.h to tic's header-files; any program | using tic-library will have to supply this file. Legacy tack | versions supply this file; ongoing tack development has dropped the | dependency upon tic-library and new releases will not be affected. ` Supplying an empty ncurses_cfg.h file might be sufficient for your purposes, but I don't know what these are. Cheers, Sven
Bug#1034549: libncurses-dev: ships header files that can't be compiled (ncurses_cfg.h)
Package: libncurses-dev Version: 6.4-2 Severity: normal The libncurses-dev package ships several header files that can't be compiled, because they depend on ncurses_cfg.h which is not available. $ grep -rl ncurses_cfg /usr/include/ /usr/include/tic.h /usr/include/curses.h /usr/include/nc_tparm.h $ -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org