Control: tags -1 + patch On 2023-12-05 23:11 +0100, Santiago Vila wrote:
> Package: src:tetradraw > Version: 2.0.3-10 > Severity: serious > Tags: ftbfs > > Dear maintainer: > > During a rebuild of all packages in unstable, your package failed to build: > > -------------------------------------------------------------------------------- > interface.c: In function ‘tv_file_select’: > interface.c:1069:36: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1069 | if(items[y]->index != index) > menu_driver(menu, REQ_DOWN_ITEM); > | ^~ > interface.c:1079:32: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1079 | index = current->index; > | ^~ > interface.c:1111:56: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1111 | index = current->index; > | ^~ > interface.c:1136:40: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1136 | index = current->index; > | ^~ > interface.c:1146:40: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1146 | index = current->index; > | ^~ > interface.c: In function ‘file_select’: > interface.c:1217:36: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1217 | if(items[y]->index != index) > menu_driver(menu, REQ_DOWN_ITEM); > | ^~ > gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall > -ggdb3 -c -o load.o load.c > interface.c:1221:32: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1221 | index = current->index; > | ^~ > interface.c:1259:56: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1259 | index = current->index; > | ^~ > interface.c:1284:40: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} item_index> 1284 | index = current->index; > | ^~ > interface.c:1299:40: error: invalid use of incomplete typedef ‘ITEM’ {aka > ‘struct tagITEM’} > 1299 | index = current->index; These errors have been triggered by a recent change in ncurses which makes the ITEM structure opaque, its members cannot be addressed directly anymore. The remedy is rather simple: instead of item->index, use item_index(item) to retrieve the index. See the attached patch which can be added to the series file. Disclaimer: I have only tested that the package builds, not if it works. Cheers, Sven
From 037e6dd0794674264cee0049f49f39a60fe7cb40 Mon Sep 17 00:00:00 2001 From: Sven Joachim <svenj...@gmx.de> Date: Mon, 18 Dec 2023 17:14:36 +0100 Subject: [PATCH] Fix FTBFS with opaque ncurses Since ncurses patchlevel 20231021 the ITEM structure is opaque, its members cannot be addressed directly. Use the item_index function instead. --- src/interface.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/interface.c b/src/interface.c index 2692b18..25a174d 100644 --- a/src/interface.c +++ b/src/interface.c @@ -1066,7 +1066,7 @@ char *tv_file_select(int next) { post_menu(menu); for(y = 0; items[y]; y++) - if(items[y]->index != index) menu_driver(menu, REQ_DOWN_ITEM); + if(item_index(items[y]) != index) menu_driver(menu, REQ_DOWN_ITEM); else break; if(next) { @@ -1076,7 +1076,7 @@ char *tv_file_select(int next) { } current = current_item(menu); - index = current->index; + index = item_index(current); wrefresh(wf); while((ch = getch()) != 13) { switch(ch) { @@ -1108,7 +1108,7 @@ char *tv_file_select(int next) { break; case TD_KEY_ESCAPE: current = current_item(menu); - index = current->index; + index = item_index(current); unpost_menu(menu); free_menu(menu); @@ -1133,7 +1133,7 @@ char *tv_file_select(int next) { } } current = current_item(menu); - index = current->index; + index = item_index(current); wrefresh(wf); } if(strcmp("", input)) { @@ -1143,7 +1143,7 @@ char *tv_file_select(int next) { } else { hugehack: current = current_item(menu); - index = current->index; + index = item_index(current); unpost_menu(menu); free_menu(menu); free_items(items); @@ -1214,11 +1214,11 @@ char *file_select() { post_menu(menu); for(y = 0; items[y]; y++) - if(items[y]->index != index) menu_driver(menu, REQ_DOWN_ITEM); + if(item_index(items[y]) != index) menu_driver(menu, REQ_DOWN_ITEM); else break; current = current_item(menu); - index = current->index; + index = item_index(current); memset(&sauce_title, 0, sizeof(sauce_title)); memset(&sauce_group, 0, sizeof(sauce_group)); memset(&sauce_author, 0, sizeof(sauce_author)); @@ -1256,7 +1256,7 @@ char *file_select() { break; case TD_KEY_ESCAPE: current = current_item(menu); - index = current->index; + index = item_index(current); unpost_menu(menu); free_menu(menu); @@ -1281,7 +1281,7 @@ char *file_select() { } } current = current_item(menu); - index = current->index; + index = item_index(current); memset(&sauce_title, 0, sizeof(sauce_title)); memset(&sauce_group, 0, sizeof(sauce_group)); memset(&sauce_author, 0, sizeof(sauce_author)); @@ -1296,7 +1296,7 @@ char *file_select() { return fname; } else { current = current_item(menu); - index = current->index; + index = item_index(current); unpost_menu(menu); free_menu(menu); free_items(items); -- 2.43.0