Source: tack
Version: 1.07-1
Tags: buster sid fixed-upstream
With libncurses5-dev from experimental, tack FTBFS. From the build log:
,----
| gcc -c -DHAVE_CONFIG_H -I. -I. -Wdate-time -D_FORTIFY_SOURCE=2
-DXTSTRINGDEFINES -D_GNU_SOURCE -g -O2 -fdebug-prefix-map=/tmp/tack-1.07=.
-fstack-protector-strong -Wformat -Werror=format-security control.c
| In file included from ./tack.h:51:0,
| from control.c:22:
| control.c: In function 'alloc_arrays':
| ./tack.h:78:32: error: dereferencing pointer to incomplete type 'TERMINAL
{aka struct term}'
| #define CUR_TP (&(cur_term->type))
| ^
| ./tack.h:79:33: note: in expansion of macro 'CUR_TP'
| #define MAX_STRINGS NUM_STRINGS(CUR_TP)
| ^~~~~~
| control.c:81:45: note: in expansion of macro 'MAX_STRINGS'
| pads = (struct test_results **)calloc(MAX_STRINGS, sizeof(struct
test_results *));
| ^~~~~~~~~~~
| Makefile:242: recipe for target '../tack-1.07/control.o' failed
`----
The reason is the following change in ncurses:
,----
| 20170318
| + change TERMINAL structure in term.h to make it opaque. Some
| applications misuse its members, e.g., directly modifying it
| rather than using def_prog_mode().
`----
The latest upstream snapshot at
ftp://ftp.invisible-island.net/ncurses/current/tack-1.07-20170318.tgz
fixes the problem, it might be good to package it after the stretch
release. Or persuade upstream to release tack 1.08, since 1.07 is
already over seven years old.