[Pkg-tcltk-devel] Bug#1105585: tk-table: FTBFS with make --shuffle=reverse: ./generic/tkTableInitScript.h:60:17: fatal error: tkTable.tcl.h: No such file or directory

Lucas Nussbaum lucas at debian.org
Tue May 13 20:17:03 BST 2025


Source: tk-table
Version: 2.10.8-2
Severity: minor
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-shuffle

Hi,

GNU Make now has a --shuffle option that simulates non-deterministic ordering
of target prerequisites. See
https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous
work in Debian by Santiago Vila:
https://people.debian.org/~sanvila/make-shuffle/

This package fails to build with make --shuffle=reverse.
This is likely to be caused by a missing dependency in
debian/rules or an upstream Makefile.

More information about this mass bug filing is available at
https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

Relevant part (hopefully):
> gcc -DPACKAGE_NAME=\"Tktable\" -DPACKAGE_TARNAME=\"tktable\" -DPACKAGE_VERSION=\"2.10\" -DPACKAGE_STRING=\"Tktable\ 2.10\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DBUILD_Tktable=/\*\*/ -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DTCL_THREADS=1 -DUSE_TCL_STUBS=1 -DUSE_TCLOO_STUBS=1 -DUSE_TK_STUBS=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 -DHAVE_CAST_TO_UNION=1 -DHAVE_STDBOOL_H=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_MAJOR_VERSION=8  -DTBL_COMMAND=\"table\" -DTBL_RUNTIME=\"tkTable.tcl\" -DTBL_RUNTIME_DIR=\"/usr/lib/tcltk/x86_64-linux-gnu/Tktable2.10\" -I. -I./generic -I"/usr/include/tcl8.6" -I"/usr/include/tcl8.6"     -O2 -fomit-frame-pointer -DNDEBUG -Wall -fPIC -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/tk-table-2.10.8=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -pipe -O2 -fomit-frame-pointer -DNDEBUG -Wall -fPIC -Wdate-time -D_FORTIFY_SOURCE=2 -c `echo ./generic/tkTable.c` -o tkTable.o
> ./generic/tkTableUtil.c: In function ‘TableOptionBdSet’:
> ./generic/tkTableUtil.c:83:19: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>    83 |     int type    = (int) clientData;
>       |                   ^
> ./generic/tkTableUtil.c: In function ‘TableOptionBdGet’:
> ./generic/tkTableUtil.c:182:27: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>   182 |     register int type   = (int) clientData;
>       |                           ^
> ./generic/tkTableCmds.c: In function ‘Table_AdjustCmd’:
> ./generic/tkTableCmds.c:186:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>   186 |             posn = ((int) Tcl_GetHashKey(hashTablePtr, entryPtr)) + offset;
>       |                     ^
> In file included from /usr/include/tcl8.6/tk.h:19,
>                  from ./generic/tkTable.h:21,
>                  from ./generic/tkTable.c:25:
> ./generic/tkTable.c: In function ‘TableDisplay’:
> ./generic/tkTableCmds.c:187:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>   187 |             value = (int) Tcl_GetHashValue(entryPtr);
>       |                     ^
> In file included from /usr/include/tcl8.6/tk.h:19,
>                  from ./generic/tkTable.h:21,
>                  from ./generic/tkTableCmds.c:14:
> ./generic/tkTableCmds.c:200:52: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   200 |         entryPtr = Tcl_FindHashEntry(hashTablePtr, (char *) posn);
>       |                                                    ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTable.c:1969:58: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>  1969 |             entryPtr = Tcl_CreateHashEntry(colTagsCache, (char *)ucol, &new);
>       |                                                          ^
> /usr/include/tcl8.6/tcl.h:2573:62: note: in definition of macro ‘Tcl_CreateHashEntry’
>  2573 |         (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
>       |                                                              ^~~
> ./generic/tkTableCmds.c:203:27: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>   203 |                           (int) Tcl_GetHashValue(entryPtr));
>       |                           ^
> ./generic/tkTableCmds.c:220:60: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   220 |                 entryPtr = Tcl_FindHashEntry(hashTablePtr, (char *) posn);
>       |                                                            ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableCmds.c:226:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   226 |                                                (char *) posn, &dummy);
>       |                                                ^
> /usr/include/tcl8.6/tcl.h:2573:62: note: in definition of macro ‘Tcl_CreateHashEntry’
>  2573 |         (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
>       |                                                              ^~~
> ./generic/tkTableCmds.c:227:44: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   227 |                 Tcl_SetHashValue(entryPtr, (ClientData) value);
>       |                                            ^
> /usr/include/tcl8.6/tcl.h:2556:64: note: in definition of macro ‘Tcl_SetHashValue’
>  2556 | #define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
>       |                                                                ^~~~~
> ./generic/tkTableCmds.c: In function ‘Table_BorderCmd’:
> ./generic/tkTable.c: In function ‘TableFlashEvent’:
> ./generic/tkTable.c:2661:17: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>  2661 |         count = (int) Tcl_GetHashValue(entryPtr);
>       |                 ^
> ./generic/tkTable.c:2673:40: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>  2673 |             Tcl_SetHashValue(entryPtr, (ClientData) count);
>       |                                        ^
> /usr/include/tcl8.6/tcl.h:2556:64: note: in definition of macro ‘Tcl_SetHashValue’
>  2556 | #define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
>       |                                                                ^~~~~
> ./generic/tkTable.c: In function ‘TableAddFlash’:
> /usr/include/tcl8.6/tcl.h:2556:55: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>  2556 | #define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
>       |                                                       ^
> ./generic/tkTable.c:2718:5: note: in expansion of macro ‘Tcl_SetHashValue’
>  2718 |     Tcl_SetHashValue(entryPtr, tablePtr->flashTime);
>       |     ^~~~~~~~~~~~~~~~
> ./generic/tkTable.c: In function ‘TableAdjustParams’:
> ./generic/tkTableCmds.c:416:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   416 |                                                (char *) row, &dummy);
>       |                                                ^
> /usr/include/tcl8.6/tcl.h:2573:62: note: in definition of macro ‘Tcl_CreateHashEntry’
>  2573 |         (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
>       |                                                              ^~~
> ./generic/tkTableCmds.c:419:44: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   419 |                 Tcl_SetHashValue(entryPtr, (ClientData) MIN(0,-value));
>       |                                            ^
> /usr/include/tcl8.6/tcl.h:2556:64: note: in definition of macro ‘Tcl_SetHashValue’
>  2556 | #define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
>       |                                                                ^~~~~
> ./generic/tkTableCmds.c:430:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   430 |                                                (char *) col, &dummy);
>       |                                                ^
> /usr/include/tcl8.6/tcl.h:2573:62: note: in definition of macro ‘Tcl_CreateHashEntry’
>  2573 |         (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
>       |                                                              ^~~
> ./generic/tkTableCmds.c:433:44: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   433 |                 Tcl_SetHashValue(entryPtr, (ClientData) MIN(0,-value));
>       |                                            ^
> /usr/include/tcl8.6/tcl.h:2556:64: note: in definition of macro ‘Tcl_SetHashValue’
>  2556 | #define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
>       |                                                                ^~~~~
> ./generic/tkTable.c:3117:59: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>  3117 |         entryPtr = Tcl_FindHashEntry(tablePtr->colWidths, (char *) i);
>       |                                                           ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableCmds.c: In function ‘Table_ClearCmd’:
> ./generic/tkTableCmds.c:552:47: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   552 |                                               (char *) row))) {
>       |                                               ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableCmds.c:559:47: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   559 |                                               (char *) row-tablePtr->rowOffset))) {
>       |                                               ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTable.c:3123:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>  3123 |             value = (int) Tcl_GetHashValue(entryPtr);
>       |                     ^
> ./generic/tkTableCmds.c:570:55: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   570 |                                                       (char *) col))) {
>       |                                                       ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableCmds.c:593:72: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   593 |                     (entryPtr = Tcl_FindHashEntry(tablePtr->colWidths, (char *)
>       |                                                                        ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTable.c:3211:64: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>  3211 |             entryPtr = Tcl_FindHashEntry(tablePtr->rowHeights, (char *) i);
>       |                                                                ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTable.c:3217:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>  3217 |                 value = (int) Tcl_GetHashValue(entryPtr);
>       |                         ^
> ./generic/tkTable.c: In function ‘TableRestrictProc’:
> ./generic/tkTable.c:3765:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
>  3765 |         ((eventPtr->xany.serial-(unsigned int)serial) > 0)) {
>       |                                 ^
> In file included from /usr/include/tcl8.6/tk.h:19,
>                  from ./generic/tkTable.h:21,
>                  from ./generic/tkTableEdit.c:14:
> ./generic/tkTableEdit.c: In function ‘TableModifyRC’:
> ./generic/tkTableEdit.c:608:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   608 |         entryPtr = Tcl_FindHashEntry(tagTblPtr, (char *)from);
>       |                                                 ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableEdit.c:612:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   612 |         entryPtr = Tcl_FindHashEntry(dimTblPtr, (char *)from-offset);
>       |                                                 ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableEdit.c:617:53: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   617 |             entryPtr = Tcl_FindHashEntry(tagTblPtr, (char *)to);
>       |                                                     ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableEdit.c:619:57: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   619 |                 newPtr = Tcl_CreateHashEntry(tagTblPtr, (char *)from, &new);
>       |                                                         ^
> /usr/include/tcl8.6/tcl.h:2573:62: note: in definition of macro ‘Tcl_CreateHashEntry’
>  2573 |         (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
>       |                                                              ^~~
> ./generic/tkTableEdit.c:623:53: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   623 |             entryPtr = Tcl_FindHashEntry(dimTblPtr, (char *)to-offset);
>       |                                                     ^
> /usr/include/tcl8.6/tcl.h:2570:60: note: in definition of macro ‘Tcl_FindHashEntry’
>  2570 |         (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
>       |                                                            ^~~
> ./generic/tkTableEdit.c:625:57: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   625 |                 newPtr = Tcl_CreateHashEntry(dimTblPtr, (char *)from-offset,
>       |                                                         ^
> /usr/include/tcl8.6/tcl.h:2573:62: note: in definition of macro ‘Tcl_CreateHashEntry’
>  2573 |         (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
>       |                                                              ^~~
> In file included from ./generic/tkTable.c:4014:
> ./generic/tkTableInitScript.h: In function ‘Tktable_Init’:
> ./generic/tkTableInitScript.h:60:17: fatal error: tkTable.tcl.h: No such file or directory
>    60 | #       include "tkTable.tcl.h"
>       |                 ^~~~~~~~~~~~~~~
> compilation terminated.
> make[1]: *** [Makefile:318: tkTable.o] Error 1 shuffle=reverse


The full build log is available from:
http://qa-logs.debian.net/2025/05/05/shuffle/reverse/tk-table_2.10.8-2_unstable_reverse.log

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects



More information about the Pkg-tcltk-devel mailing list