• Bug#1066390: gravitywars: FTBFS: misc.c:6:9: error: implicit declaratio

    From Lucas Nussbaum@21:1/5 to All on Wed Mar 13 13:10:01 2024
    Source: gravitywars
    Version: 1.102-35
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20240313 ftbfs-trixie ftbfs-impfuncdef

    Hi,

    During a rebuild of all packages in sid, your package failed to build
    on amd64.

    This is most likely caused by a change in dpkg 1.22.6, that enabled -Werror=implicit-function-declaration. For more information, see https://wiki.debian.org/qa.debian.org/FTBFS#A2024-03-13_-Werror.3Dimplicit-function-declaration

    Relevant part (hopefully):
    cc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DUSE_SDL -DUSE_JOYSTICK `pkg-config sdl --cflags` -Wdate-time -D_
    FORTIFY_SOURCE=2 -c -o blocks.o blocks.c
    misc.c: In function ‘waitanykey’:
    misc.c:6:9: error: implicit declaration of function ‘keyboard_update’ [-Werror=implicit-function-declaration]
    6 | while(keyboard_update())
    | ^~~~~~~~~~~~~~~
    misc.c:7:5: error: implicit declaration of function ‘vga_waitretrace’ [-Werror=implicit-function-declaration]
    7 | vga_waitretrace();
    | ^~~~~~~~~~~~~~~
    misc.c: In function ‘doPanic’:
    misc.c:18:3: error: implicit declaration of function ‘printf’ [-Werror=implicit-function-declaration]
    18 | printf("------------------------------\n"
    | ^~~~~~
    misc.c:1:1: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
    +++ |+#include <stdio.h>
    1 | /* GravityWars 1.1, (C) Sami Niemi -95 */
    misc.c:18:3: warning: incompatible implicit declaration of built-in function ‘printf’ [-Wbuiltin-declaration-mismatch]
    18 | printf("------------------------------\n"
    | ^~~~~~
    misc.c:18:3: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
    misc.c:21:3: error: implicit declaration of function ‘keyboard_close’ [-Werror=implicit-function-declaration]
    21 | keyboard_close();
    | ^~~~~~~~~~~~~~
    misc.c:22:3: error: implicit declaration of function ‘mouse_close’ [-Werror=implicit-function-declaration]
    22 | mouse_close();
    | ^~~~~~~~~~~
    misc.c:23:3: error: implicit declaration of function ‘exit’ [-Werror=implicit-function-declaration]
    23 | exit(1);
    | ^~~~
    misc.c:1:1: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’
    +++ |+#include <stdlib.h>
    1 | /* GravityWars 1.1, (C) Sami Niemi -95 */
    misc.c:23:3: warning: incompatible implicit declaration of built-in function ‘exit’ [-Wbuiltin-declaration-mismatch]
    23 | exit(1);
    | ^~~~
    misc.c:23:3: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’
    hole.c: In function ‘OLDmakehole’:
    hole.c:30:3: error: implicit declaration of function ‘vga_setpage’ [-Werror=implicit-function-declaration]
    30 | vga_setpage(page);
    | ^~~~~~~~~~~
    hole.c: In function ‘makehole’:
    hole.c:68:3: error: implicit declaration of function ‘getbox’ [-Werror=implicit-function-declaration]
    68 | getbox(x,y,tmpmix);
    | ^~~~~~
    hole.c:80:3: error: implicit declaration of function ‘changeblocks’ [-Werror=implicit-function-declaration]
    80 | changeblocks(x,y,tmpmix);
    | ^~~~~~~~~~~~
    pixel.c: In function ‘setpixel’:
    pixel.c:11:3: error: implicit declaration of function ‘vga_setpage’ [-Werror=implicit-function-declaration]
    11 | vga_setpage(adr >> 16);
    | ^~~~~~~~~~~
    bullet.c: In function ‘setbullet’:
    bullet.c:17:3: error: implicit declaration of function ‘vga_setpage’ [-Werror=implicit-function-declaration]
    17 | vga_setpage(page);
    | ^~~~~~~~~~~
    cc1: some warnings being treated as errors
    make[2]: *** [<builtin>: misc.o] Error 1


    The full build log is available from: http://qa-logs.debian.net/2024/03/13/gravitywars_1.102-35_unstable.log

    All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240313;users=lucas@debian.org
    or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240313&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

    A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

    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

    If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Guillem Jover@21:1/5 to Lucas Nussbaum on Fri May 3 19:20:02 2024
    Control: tag -1 patch

    Hi!

    On Wed, 2024-03-13 at 12:51:07 +0100, Lucas Nussbaum wrote:
    Source: gravitywars
    Version: 1.102-35
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20240313 ftbfs-trixie ftbfs-impfuncdef

    During a rebuild of all packages in sid, your package failed to build
    on amd64.

    This is most likely caused by a change in dpkg 1.22.6, that enabled -Werror=implicit-function-declaration. For more information, see https://wiki.debian.org/qa.debian.org/FTBFS#A2024-03-13_-Werror.3Dimplicit-function-declaration

    Relevant part (hopefully):
    cc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DUSE_SDL -DUSE_JOYSTICK `pkg-config sdl --cflags` -Wdate-time -D_
    FORTIFY_SOURCE=2 -c -o blocks.o blocks.c
    misc.c: In function ‘waitanykey’:
    misc.c:6:9: error: implicit declaration of function ‘keyboard_update’ [-Werror=implicit-function-declaration]
    6 | while(keyboard_update())
    | ^~~~~~~~~~~~~~~
    misc.c:7:5: error: implicit declaration of function ‘vga_waitretrace’ [-Werror=implicit-function-declaration]
    7 | vga_waitretrace();
    | ^~~~~~~~~~~~~~~
    misc.c: In function ‘doPanic’:
    misc.c:18:3: error: implicit declaration of function ‘printf’ [-Werror=implicit-function-declaration]
    18 | printf("------------------------------\n"
    | ^~~~~~
    misc.c:1:1: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
    +++ |+#include <stdio.h>
    1 | /* GravityWars 1.1, (C) Sami Niemi -95 */
    misc.c:18:3: warning: incompatible implicit declaration of built-in function ‘printf’ [-Wbuiltin-declaration-mismatch]
    18 | printf("------------------------------\n"
    | ^~~~~~
    misc.c:18:3: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
    misc.c:21:3: error: implicit declaration of function ‘keyboard_close’ [-Werror=implicit-function-declaration]
    21 | keyboard_close();
    | ^~~~~~~~~~~~~~
    misc.c:22:3: error: implicit declaration of function ‘mouse_close’ [-Werror=implicit-function-declaration]
    22 | mouse_close();
    | ^~~~~~~~~~~
    misc.c:23:3: error: implicit declaration of function ‘exit’ [-Werror=implicit-function-declaration]
    23 | exit(1);
    | ^~~~
    misc.c:1:1: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’
    +++ |+#include <stdlib.h>
    1 | /* GravityWars 1.1, (C) Sami Niemi -95 */
    misc.c:23:3: warning: incompatible implicit declaration of built-in function ‘exit’ [-Wbuiltin-declaration-mismatch]
    23 | exit(1);
    | ^~~~
    misc.c:23:3: note: include ‘<stdlib.h>’ or provide a declaration of ‘exit’
    hole.c: In function ‘OLDmakehole’:
    hole.c:30:3: error: implicit declaration of function ‘vga_setpage’ [-Werror=implicit-function-declaration]
    30 | vga_setpage(page);
    | ^~~~~~~~~~~
    hole.c: In function ‘makehole’:
    hole.c:68:3: error: implicit declaration of function ‘getbox’ [-Werror=implicit-function-declaration]
    68 | getbox(x,y,tmpmix);
    | ^~~~~~
    hole.c:80:3: error: implicit declaration of function ‘changeblocks’ [-Werror=implicit-function-declaration]
    80 | changeblocks(x,y,tmpmix);
    | ^~~~~~~~~~~~
    pixel.c: In function ‘setpixel’:
    pixel.c:11:3: error: implicit declaration of function ‘vga_setpage’ [-Werror=implicit-function-declaration]
    11 | vga_setpage(adr >> 16);
    | ^~~~~~~~~~~
    bullet.c: In function ‘setbullet’:
    bullet.c:17:3: error: implicit declaration of function ‘vga_setpage’ [-Werror=implicit-function-declaration]
    17 | vga_setpage(page);
    | ^~~~~~~~~~~
    cc1: some warnings being treated as errors
    make[2]: *** [<builtin>: misc.o] Error 1

    The attached debdiff patch should fix this.

    I pondered creating a single header and including all declarations
    there to have a smaller delta, but decided to follow the existing
    pattern in the project. If you'd prefer to see a single header,
    instead of all new headers, I'm happy to rework the patch.

    Thanks,
    Guillem

    diff -Nru gravitywars-1.102/debian/patches/implicit-decls.patch gravitywars-1.102/debian/patches/implicit-decls.patch
    --- gravitywars-1.102/debian/patches/implicit-decls.patch 1970-01-01 01:00:00.000000000 +0100
    +++ gravitywars-1.102/debian/patches/implicit-decls.patch 2024-05-03 18:57:53.000000000 +0200
    @@ -0,0 +1,412 @@
    +Description: Add function declarations
    + With the compiler setting -Werror=implicit-function-declaration by default,
    + we need to properly declare all functions in the relevant headers.
    + .
    + Create one header per C file to match the existing code patterns, even
    + though those where very partially implemented.
    +Author: Guillem Jover <guillem@hadrons.org>
    +Origin: vendor
    +Forwarded: no
    +
    +---
    + GravityWars101.c | 8 ++++++++
    + animate.c | 4 ++++
    + animate.h | 7 +++++++
    + blocks.c | 2 ++
    + blocks.h | 14 ++++++++++++++
    + bullet.c | 1 +
    + bullet.h | 7 +++++++
    + config.h | 5 ++++-
    + control.c | 9 +++++++++
    + control.h | 6 ++++++
    + hole.c | 2 ++
    + hole.h | 6 ++++++
    +