#1114069 blimps: FTBFS: blksort.c:228:19: error: too many arguments to function 'read_config'; expected 0, have 3

Package:
src:blimps
Source:
src:blimps
Submitter:
Santiago Vila
Date:
2026-10-17 19:31:01 UTC
Severity:
normal
Tags:
#1114069#5
Date:
2025-09-05 18:15:49 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build.

Below you will find how the build ends (probably the most relevant part,
but not necessarily). If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202509/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:blimps, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_auto_clean
	make -j2 distclean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
if [ -d blimps ]; then make -C blimps -f Makefile.Linux clean; fi
if [ -d protomat ]; then make -C protomat -f Makefile.Linux clean; fi
make[2]: Entering directory '/<<PKGBUILDDIR>>/protomat'
/bin/rm -f *.o blksort getblock getseq multimat motifj motomat uextract blosum blastdat
make[2]: Entering directory '/<<PKGBUILDDIR>>/blimps'
rm -f blimps blweight blalign bldist blk2pssm rank_matrix retblock codehop htmlize-codehop oligo_melt mablock makeblockmap prints2blocks lisblk coduse narrow blkprob blk2slx LAMA find_biassed_blocks fastaseqs addseqs cobbler interpro pssmdist pssmBL papssm matrix_logob makelogob blocks_search LAMA_search block_vis format_block biassed_blocks_finder htmlize-LAMA show_aligned_blocks makelis blk2mot
make[2]: Leaving directory '/<<PKGBUILDDIR>>/protomat'
rm -f *.a *.o *~
if [ "." != "." ]; then rm -f -r .; fi

[... snipped ...]

In file included from blimps.c:29:
config.h:28:12: note: declared here
   28 | extern int read_config_file ();
      |            ^~~~~~~~~~~~~~~~
blimps.c:918:3: error: too many arguments to function ‘init_reclaim_space’; expected 0, have 1
  918 |   init_reclaim_space(blimps_reclaim_space);
      |   ^~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
In file included from ../include/global.h:53:
../include/memory.h:117:13: note: declared here
  117 | extern void init_reclaim_space();
      |             ^~~~~~~~~~~~~~~~~~
blimps.c:926:7: error: too many arguments to function ‘number_of_files’; expected 0, have 1
  926 |   if (number_of_files(FREQUENCY_FILE) <= 0) {
      |       ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:944:20: error: too many arguments to function ‘get_current_file_name’; expected 0, have 1
  944 |     strcpy(Buffer, get_current_file_name(FREQUENCY_FILE));
      |                    ^~~~~~~~~~~~~~~~~~~~~
../include/files.h:108:14: note: declared here
  108 | extern char *get_current_file_name();
      |              ^~~~~~~~~~~~~~~~~~~~~
blimps.c:948:3: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
  948 |   ErrorReport(INFO_ERR_LVL);
      |   ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:950:9: error: too many arguments to function ‘load_frequencies’; expected 0, have 1
  950 |   if (! load_frequencies(Buffer)) {
      |         ^~~~~~~~~~~~~~~~ ~~~~~~
In file included from blimps.c:23:
../include/frequency.h:40:16: note: declared here
   40 | extern Boolean load_frequencies();
      |                ^~~~~~~~~~~~~~~~
blimps.c:952:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
  952 |     ErrorReport(SERIOUS_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:965:11: error: too many arguments to function ‘get_option_args’; expected 0, have 3
  965 |     if (! get_option_args("alts", & qargc, & qargv)) {
      |           ^~~~~~~~~~~~~~~ ~~~~~~
In file included from blimps.c:24:
../include/options.h:67:16: note: declared here
   67 | extern Boolean get_option_args();
      |                ^~~~~~~~~~~~~~~
blimps.c:968:7: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
  968 |       ErrorReport(WARNING_ERR_LVL);
      |       ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:982:7: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
  982 |       ErrorReport(FATAL_ERR_LVL);
      |       ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:985:11: error: too many arguments to function ‘load_qij’; expected 0, have 1
  985 |     Qij = load_qij(fqij);
      |           ^~~~~~~~ ~~~~
../include/convert.h:58:26: note: declared here
   58 | extern struct float_qij *load_qij();
      |                          ^~~~~~~~
blimps.c:989:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
  989 |     ErrorReport(INFO_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:999:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
  999 |     ErrorReport(WARNING_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1005:3: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1005 |   ErrorReport(INFO_ERR_LVL);
      |   ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1006:3: error: too many arguments to function ‘init_gcode’; expected 0, have 3
 1006 |   init_gcode(&gcodes[GeneticCodeInitializer], gcode, revgcode);
      |   ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/residues.h:16,
                 from blimps.c:18:
../include/gcode.h:96:6: note: declared here
   96 | void init_gcode PROTO((GeneticCodePtr, unsigned char [64], unsigned char [64]));
      |      ^~~~~~~~~~
blimps.c:1017:7: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1017 |       ErrorReport(FATAL_ERR_LVL);
      |       ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1034:7: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1034 |       ErrorReport(SERIOUS_ERR_LVL);
      |       ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1037:7: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1037 |       ErrorReport(SERIOUS_ERR_LVL);
      |       ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1078:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1078 |     ErrorReport(PROGRAM_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1081:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1081 |     ErrorReport(PROGRAM_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1084:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1084 |     ErrorReport(PROGRAM_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1087:5: error: too many arguments to function ‘ErrorReport’; expected 0, have 1
 1087 |     ErrorReport(PROGRAM_ERR_LVL);
      |     ^~~~~~~~~~~
../include/errors.h:62:13: note: declared here
   62 | extern void ErrorReport();
      |             ^~~~~~~~~~~
blimps.c:1097:3: error: too many arguments to function ‘print_version’; expected 0, have 1
 1097 |   print_version(ofp);
      |   ^~~~~~~~~~~~~ ~~~
../include/version.h:112:13: note: declared here
  112 | extern void print_version();
      |             ^~~~~~~~~~~~~
blimps.c:1123:38: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1123 |     fprintf(ofp, "Probe File: %s\n", get_file_name(0, SEQUENCE_FILES));
      |                                      ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1126:46: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1126 |       fprintf(ofp, "Target File (s) : %s\n", get_file_name(0, BLOCK_FILES));
      |                                              ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1127:18: error: too many arguments to function ‘number_of_files’; expected 0, have 1
 1127 |       for(i=1; i<number_of_files(BLOCK_FILES); i++) {
      |                  ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:1128:48: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1128 |         fprintf(ofp, "                  %s\n", get_file_name(i, BLOCK_FILES));
      |                                                ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1132:46: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1132 |       fprintf(ofp, "Target File (s) : %s\n", get_file_name(0, MATRIX_FILES));
      |                                              ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1133:18: error: too many arguments to function ‘number_of_files’; expected 0, have 1
 1133 |       for(i=1; i<number_of_files(MATRIX_FILES); i++) {
      |                  ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:1134:48: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1134 |         fprintf(ofp, "                  %s\n", get_file_name(i, MATRIX_FILES));
      |                                                ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1150:40: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1150 |       fprintf(ofp, "Block File: %s\n", get_file_name(0, BLOCK_FILES));
      |                                        ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1153:41: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1153 |       fprintf(ofp, "Matrix File: %s\n", get_file_name(0, MATRIX_FILES));
      |                                         ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1156:44: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1156 |     fprintf(ofp, "Target File (s) : %s\n", get_file_name(0, SEQUENCE_FILES));
      |                                            ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1157:16: error: too many arguments to function ‘number_of_files’; expected 0, have 1
 1157 |     for(i=1; i<number_of_files(SEQUENCE_FILES); i++) {
      |                ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:1158:46: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1158 |       fprintf(ofp, "                  %s\n", get_file_name(i, SEQUENCE_FILES));
      |                                              ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1171:48: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1171 |       fprintf(ofp, "Block File (s) :    %s\n", get_file_name(0, BLOCK_FILES));
      |                                                ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1172:18: error: too many arguments to function ‘number_of_files’; expected 0, have 1
 1172 |       for(i=1; i<number_of_files(BLOCK_FILES); i++) {
      |                  ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:1173:49: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1173 |         fprintf(ofp, "                   %s\n", get_file_name(i, BLOCK_FILES));
      |                                                 ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1177:48: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1177 |       fprintf(ofp, "Matrix File (s) :    %s\n",get_file_name(0, MATRIX_FILES));
      |                                                ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1178:18: error: too many arguments to function ‘number_of_files’; expected 0, have 1
 1178 |       for(i=1; i<number_of_files(MATRIX_FILES); i++) {
      |                  ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:1179:48: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1179 |         fprintf(ofp, "                   %s\n",get_file_name(i, MATRIX_FILES));
      |                                                ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1184:46: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1184 |     fprintf(ofp, "Sequence File (s) : %s\n", get_file_name(0, SEQUENCE_FILES));
      |                                              ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1185:16: error: too many arguments to function ‘number_of_files’; expected 0, have 1
 1185 |     for(i=1; i<number_of_files(SEQUENCE_FILES); i++) {
      |                ^~~~~~~~~~~~~~~
../include/files.h:133:12: note: declared here
  133 | extern int number_of_files();
      |            ^~~~~~~~~~~~~~~
blimps.c:1186:47: error: too many arguments to function ‘get_file_name’; expected 0, have 2
 1186 |       fprintf(ofp, "                   %s\n", get_file_name(i, SEQUENCE_FILES));
      |                                               ^~~~~~~~~~~~~ ~
../include/files.h:121:7: note: declared here
  121 | char *get_file_name();
      |       ^~~~~~~~~~~~~
blimps.c:1197:3: error: too many arguments to function ‘output_scores’; expected 0, have 2
 1197 |   output_scores(NumberToReport, ofp);
      |   ^~~~~~~~~~~~~ ~~~~~~~~~~~~~~
scores.h:116:13: note: declared here
  116 | extern void output_scores();
      |             ^~~~~~~~~~~~~
make[2]: *** [<builtin>: blimps.o] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>/blimps'
make[1]: *** [Makefile:17: blimps] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j2 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:13: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

#1114069#10
Date:
2026-10-09 13:54:41 UTC
From:
To:
Control: tags -1 + patch
Control: user ubuntu-devel@lists.ubuntu.com
Control: usertags -1 + origin-ubuntu stonking ubuntu-patch

Hi,

We hit this in Ubuntu (gcc-15 15.3) and fixed it as below; the attached
changes build fine, and sift builds against the result.

There are two parts to it:

1. The K&R code doesn't build in C23 mode (gcc-15's default), so build with
   -std=gnu17 (debian-rules.diff):

     -export DEB_CFLAGS_MAINT_APPEND=-Wno-error=implicit-int
     +export DEB_CFLAGS_MAINT_APPEND=-Wno-error=implicit-int -std=gnu17

2. That alone isn't enough, because protomat/Makefile.Linux hardcodes
   "CFLAGS = -Wall -O2 -c" and ignores the DEBCFLAGS/DEBLDFLAGS that the
   top-level Makefile passes (so the protomat tools were also built without
   the hardening flags). protomat-honour-build-flags.patch makes it use them.

   With the hardening flags, -Werror=format-security then catches a real
   issue: extract_seqs() writes sequence data with fprintf(fout, line), i.e.
   the data is used as a format string. protomat-format-security.patch
   switches that (and the same pattern in universa.c) to fputs().

The binary packages' contents are unchanged (the protomat tools are only
built, not shipped).

Ubuntu upload: blimps 3.9+ds-4ubuntu1.

Thanks,
Sebastien Bacher

#1114069#15
Date:
2026-10-12 09:12:53 UTC
From:
To:
Hi,

One more change is needed on 32-bit architectures with 64-bit time_t
(armhf): blimps/p2clib.c passes a "long" to time(), localtime() and ctime()
in TimeStamp(), VAXdate() and VAXtime(). With 64-bit time_t that's the wrong
type (time() writes 8 bytes into a 4-byte variable), and gcc-15 rejects it:

  p2clib.c:817:10: error: passing argument 1 of 'time' from incompatible pointer type [-Wincompatible-pointer-types]

The attached p2clib-time_t.patch switches those variables to time_t. With it
and the three changes from my previous message, the whole tree compiles for
armhf. (Debian doesn't currently build blimps on armhf since it's non-free,
but the bug is real on any 32-bit architecture with 64-bit time_t.)

Ubuntu upload: blimps 3.9+ds-4ubuntu2.

Thanks,
Sebastien Bacher

#1114069#18
Date:
2026-10-17 19:28:59 UTC
From:
To:
Hello,

Bug #1114069 in blimps reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/med-team/blimps/-/commit/ae3caf09838b4c93ef7c45c0effa0ec8354d7c69
* d/rules: build with -std=gnu17 to cope with gcc-15's default of C23
  mode, which the K&R code does not support.
* protomat-honour-build-flags.patch: new: build the protomat tools with
  the DEBCFLAGS/DEBLDFLAGS passed from the top Makefile instead of the
  hardcoded flags, so -std=gnu17 and the hardening flags apply to them.
* protomat-format-security.patch: new: use fputs() instead of
  fprintf(fout, line) with sequence data as the format string.
* p2clib-time_t.patch: new: use time_t for the result of time() in
  TimeStamp(), VAXdate() and VAXtime().
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1114069