[Debian-med-packaging] Bug#1066326: codonw: FTBFS: codonW.h:38:74: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]

Lucas Nussbaum lucas at debian.org
Wed Mar 13 11:48:36 GMT 2024


Source: codonw
Version: 1.4.4-7
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas at 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 -c -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DLINUX -Wdate-time -D_FORTIFY_SOURCE=2 coresp.c
> In file included from menu.c:31:
> menu.c: In function ‘main_menu’:
> codonW.h:38:74: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]
>    38 | #define pause {fprintf(stderr,"\nPress return or enter to continue -> ");gets(pm->junk);}
>       |                                                                          ^~~~
> menu.c:69:9: note: in expansion of macro ‘pause’
>    69 |         pause;
>       |         ^~~~~
> codons.c: In function ‘main’:
> codons.c:190:55: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   190 |     fprintf(pm->my_err,"\n\n\t\tNumber of sequences: %i\n",
>       |                                                      ~^
>       |                                                       |
>       |                                                       int
>       |                                                      %li
>   191 |         num_sequence);
>       |         ~~~~~~~~~~~~                                   
>       |         |
>       |         long int
> codons.c:196:32: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   196 |            fprintf(pm->my_err, "\tWARNING\t At least one sequence in your"
>       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   197 |                     " input file has\ninternal stop codons (found %i"
>   198 |                     " internal stops) \tWARNING\n",num_seq_int_stop);
>       |                                                    ~~~~~~~~~~~~~~~~
>       |                                                    |
>       |                                                    long int
> codons.c:197:68: note: format string is defined here
>   197 |                     " input file has\ninternal stop codons (found %i"
>       |                                                                   ~^
>       |                                                                    |
>       |                                                                    int
>       |                                                                   %li
> codons.c:200:46: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   200 |            fprintf(pm->my_err, "\tWARNING\t %i sequences had internal "
>       |                                             ~^
>       |                                              |
>       |                                              int
>       |                                             %li
>   201 |                            "stop codons \tWARNING\n",num_seq_int_stop);
>       |                                                      ~~~~~~~~~~~~~~~~
>       |                                                      |
>       |                                                      long int
> In file included from codons.c:90:
> codonW.h:38:74: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]
>    38 | #define pause {fprintf(stderr,"\nPress return or enter to continue -> ");gets(pm->junk);}
>       |                                                                          ^~~~
> codons.c:204:35: note: in expansion of macro ‘pause’
>   204 |     if ( pm->codonW && pm->menu ) pause;
>       |                                   ^~~~~
> codons.c: In function ‘toutput’:
> codons.c:640:25: warning: unknown conversion type character ‘=’ in format [-Wformat=]
>   640 |     fprintf(pm->my_err, "%3li>\t%6li %-40.40s\tDNA\tGC%"
>       |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codons.c:641:11: note: format string is defined here
>   641 |         " =%5.3f\n"                 /* with G+C content and length of gene */
>       |           ^
> In file included from commline.c:28:
> commline.c: In function ‘proc_comm_line’:
> codonW.h:38:74: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]
>    38 | #define pause {fprintf(stderr,"\nPress return or enter to continue -> ");gets(pm->junk);}
>       |                                                                          ^~~~
> commline.c:103:9: note: in expansion of macro ‘pause’
>   103 |         pause;
>       |         ^~~~~
> codons.c:647:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   647 |       fprintf(pm->my_err, "\t\t WARNING %d non IUBC standard characters "
>       |                                         ~^
>       |                                          |
>       |                                          int
>       |                                         %ld
>   648 |           "in sequence %i\n"
>   649 |           ,non_std_char - IUBC_TOT
>       |            ~~~~~~~~~~~~~~~~~~~~~~~        
>       |                         |
>       |                         long int
> codons.c:647:27: warning: format ‘%i’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat=]
>   647 |       fprintf(pm->my_err, "\t\t WARNING %d non IUBC standard characters "
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ......
>   650 |           ,num_sequence);
>       |            ~~~~~~~~~~~~    
>       |            |
>       |            long int
> codons.c:648:25: note: format string is defined here
>   648 |           "in sequence %i\n"
>       |                        ~^
>       |                         |
>       |                         int
>       |                        %li
> codons.c:652:30: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   652 |     fprintf(pm->my_err, "\t%3i>\t%6li %-40.40s\tPROTEIN\n"
>       |                            ~~^
>       |                              |
>       |                              int
>       |                            %3li
>   653 |         ,num_sequence
>       |          ~~~~~~~~~~~~         
>       |          |
>       |          long int
> open_fil.c: In function ‘open_file’:
> open_fil.c:88:13: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]
>    88 |             gets(infile_name);                          /* get filename   */
>       |             ^~~~
>       |             fgets
> open_fil.c:128:28: warning: field precision specifier ‘.*’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
>   128 |             fprintf(stderr,"\nThese are the files in the current directory "
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   129 |                 "I cannot find %.*s \n\n",strlen(infile_name),infile_name);
>       |                                           ~~~~~~~~~~~~~~~~~~~
>       |                                           |
>       |                                           size_t {aka long unsigned int}
> open_fil.c:129:34: note: format string is defined here
>   129 |                 "I cannot find %.*s \n\n",strlen(infile_name),infile_name);
>       |                                ~~^~
>       |                                  |
>       |                                  int
> codons.c:657:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   657 |       fprintf(pm->my_err, "\t\t WARNING %d non "
>       |                                         ~^
>       |                                          |
>       |                                          int
>       |                                         %ld
> ......
>   660 |           ,non_std_char
>       |            ~~~~~~~~~~~~                   
>       |            |
>       |            long int
> open_fil.c:162:52: warning: field precision specifier ‘.*’ expects argument of type ‘int’, but argument 3 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
>   162 |                 fprintf(stderr, "\nWarning :File %.*s "
>       |                                                  ~~^~
>       |                                                    |
>       |                                                    int
> ......
>   165 |                     strlen(infile_name), infile_name);
>       |                     ~~~~~~~~~~~~~~~~~~~             
>       |                     |
>       |                     size_t {aka long unsigned int}
> codons.c:657:27: warning: format ‘%i’ expects argument of type ‘int’, but argument 4 has type ‘long int’ [-Wformat=]
>   657 |       fprintf(pm->my_err, "\t\t WARNING %d non "
>       |                           ^~~~~~~~~~~~~~~~~~~~~~
> ......
>   661 |           ,num_sequence);
>       |            ~~~~~~~~~~~~    
>       |            |
>       |            long int
> codons.c:659:25: note: format string is defined here
>   659 |           "in sequence %i\n"
>       |                        ~^
>       |                         |
>       |                         int
>       |                        %li
> menu.c: In function ‘printinfo’:
> open_fil.c:166:17: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   166 |                 fgets(temp, 3, stdin);
>       |                 ^~~~~~~~~~~~~~~~~~~~~
> codons.c: In function ‘output’:
> menu.c:1285:26: warning: field precision specifier ‘.*’ expects argument of type ‘int’, but argument 2 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
>  1285 |   printf("\tVersion  : %.*s\n", strlen(Revision) , Revision );
>       |                        ~~^~     ~~~~~~~~~~~~~~~~
>       |                          |      |
>       |                          int    size_t {aka long unsigned int}
> codons.c:800:34: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
>   800 |       fprintf(stderr, "ERROR-23 %s bulk undefined\n",  pm->prog);
>       |                                 ~^                     ~~~~~~~~
>       |                                  |                       |
>       |                                  char *                  int
>       |                                 %d
> codons.c:805:32: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Wformat=]
>   805 |     fprintf(stderr, "ERROR-24 %s -prog undefined\n", pm->prog);
>       |                               ~^                     ~~~~~~~~
>       |                                |                       |
>       |                                char *                  int
>       |                               %d
> tester.c: In function ‘tester’:
> tester.c:88:17: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]
>    88 |                 gets( pm->junk ) ;
>       |                 ^~~~
>       |                 fgets
> In file included from codon_us.c:77:
> codon_us.c: In function ‘codon_error’:
> codonW.h:38:74: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Werror=implicit-function-declaration]
>    38 | #define pause {fprintf(stderr,"\nPress return or enter to continue -> ");gets(pm->junk);}
>       |                                                                          ^~~~
> codon_us.c:347:6: note: in expansion of macro ‘pause’
>   347 |      pause;
>       |      ^~~~~
> codon_us.c: In function ‘codon_usage_out’:
> codon_us.c:373:24: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=]
>   373 |     fprintf(fblkout, "%i%c",nncod[x],sp);
>       |                       ~^    ~~~~~~~~
>       |                        |         |
>       |                        int       long int
>       |                       %li
> codon_us.c: In function ‘raau_usage_out’:
> codon_us.c:479:21: warning: too many arguments for format [-Wformat-extra-args]
>   479 |    fprintf(fblkout, "\n",sp);
>       |                     ^~~~
> codon_us.c: In function ‘cbi_out’:
> codon_us.c:831:32: warning: format ‘%f’ expects argument of type ‘double’, but argument 3 has type ‘int’ [-Wformat=]
>   831 |          sprintf(pm->messages, " Serious error in CBI information found"
>       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ......
>   836 |           pcbi->fop_cod[x], x);
>       |           ~~~~~~~~~~~~~~~~      
>       |                        |
>       |                        int
> codon_us.c:832:38: note: format string is defined here
>   832 |           " an illegal CBI value of %f for codon %i"
>       |                                     ~^
>       |                                      |
>       |                                      double
>       |                                     %d
> codon_us.c: In function ‘fop_out’:
> codon_us.c:988:28: warning: format ‘%f’ expects argument of type ‘double’, but argument 3 has type ‘int’ [-Wformat=]
>   988 |      sprintf(pm->messages, " Serious error in fop information found"
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ......
>   993 |          pfop->fop_cod[x], x);
>       |          ~~~~~~~~~~~~~~~~   
>       |                       |
>       |                       int
> codon_us.c:989:37: note: format string is defined here
>   989 |          " an illegal fop value of %f for codon %l"
>       |                                    ~^
>       |                                     |
>       |                                     double
>       |                                    %d
> codon_us.c:988:28: warning: unknown conversion type character ‘ ’ in format [-Wformat=]
>   988 |      sprintf(pm->messages, " Serious error in fop information found"
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c:990:11: note: format string is defined here
>   990 |          " permissible values are \n 1 for non-optimal"
>       |           ^
> codon_us.c:988:28: warning: too many arguments for format [-Wformat-extra-args]
>   988 |      sprintf(pm->messages, " Serious error in fop information found"
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c:994:25: warning: unknown conversion type character ‘,’ in format [-Wformat=]
>   994 |          printf ("opt %l, std %l, nonopt %l\n",opt,std,nonopt);
>       |                         ^
> codon_us.c:994:33: warning: unknown conversion type character ‘,’ in format [-Wformat=]
>   994 |          printf ("opt %l, std %l, nonopt %l\n",opt,std,nonopt);
>       |                                 ^
> codon_us.c:994:44: warning: unknown conversion type character ‘\x0a’ in format [-Wformat=]
>   994 |          printf ("opt %l, std %l, nonopt %l\n",opt,std,nonopt);
>       |                                            ^~
> codon_us.c:994:18: warning: too many arguments for format [-Wformat-extra-args]
>   994 |          printf ("opt %l, std %l, nonopt %l\n",opt,std,nonopt);
>       |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c: In function ‘gc_out’:
> codon_us.c:1181:10: warning: too many arguments for format [-Wformat-extra-args]
>  1181 |          "Gene_description%cLen_aa%cLen_sym%cGC%cGC3s%cGCn3s%cGC1%cGC2"
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c: In function ‘textbin’:
> coresp.c:98:5: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>    98 |     fscanf(pm->fcoa_in,"%s",pm->junk);
>       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:104:9: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   104 |         fscanf(pm->fcoa_in,"%i",&v2);
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:108:9: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   108 |         fscanf(pm->fcoa_in,"%i\n",&v2);
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:115:10: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   115 |          fscanf(pm->fcoa_in,"%i",&v2);
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:119:9: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   119 |         fscanf(pm->fcoa_in,"%i\n",&v2);
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:127:9: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   127 |         fscanf(pm->fcoa_in,"%i",&v2);
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:131:7: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   131 |       fscanf(pm->fcoa_in,"%i\n",&v2);                /* read last codon   */
>       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c: In function ‘dinuc_out’:
> codon_us.c:1476:39: warning: precision used with ‘%c’ gnu_printf format [-Wformat=]
>  1476 |              fprintf(fblkout,"%c%c%4.4c",bases[x],bases[i],sp);
>       |                                       ^
> coresp.c: In function ‘rowout’:
> coresp.c:277:5: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>   277 |     fgets(pm->junk,BUFSIZ,fnam);
>       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c: In function ‘hydro_out’:
> codon_us.c:2115:27: warning: too many arguments for format [-Wformat-extra-args]
>  2115 |       fprintf(pm->my_err, "No output was written to file   \n", title);
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c: In function ‘aromo_out’:
> codon_us.c:2148:27: warning: too many arguments for format [-Wformat-extra-args]
>  2148 |       fprintf(pm->my_err, "No output was written to file   \n", title);
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c: In function ‘gen_cusort_fop’:
> coresp.c: In function ‘inertialig’:
> coresp.c:1271:7: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1271 |       fgets(pm->junk,BUFSIZ,fnam);
>       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> coresp.c:1315:7: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1315 |       fgets(pm->junk,BUFSIZ,fnam);
>       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c:1699:8: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1699 |        fgets(pm->junk, BUFSIZ,fnam);/* by scanning for lines of CU in     */
>       |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c:1700:7: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1700 |       fscanf(fnam, "%s", pm->junk); /* now we know the name of seq i      */
>       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c:1703:8: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1703 |        fscanf(fnam, "%f", &v2);     /* assign it initially to v2          */
>       |        ^~~~~~~~~~~~~~~~~~~~~~~
> coresp.c: In function ‘suprow’:
> coresp.c:1619:7: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1619 |       fgets(pm->junk,BUFSIZ,fnam);
>       |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> codon_us.c:1711:7: warning: ignoring return value of ‘fscanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
>  1711 |       fscanf(fnam, "%f\n", &v2);    /* now read the last codon in         */
>       |       ^~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: some warnings being treated as errors
> make[1]: *** [Makefile:33: open_fil.o] Error 1


The full build log is available from:
http://qa-logs.debian.net/2024/03/13/codonw_1.4.4-7_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.



More information about the Debian-med-packaging mailing list