#1096599 exiftags: ftbfs with GCC-15

#1096599#5
Date:
2025-02-17 17:12:22 UTC
From:
To:
[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/exiftags_1.01-7_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
  109 | extern void sigma_prop(struct exifprop *prop, struct exiftags *t);
      |             ^~~~~~~~~~
makers.c:58:48: error: initialization of ‘struct ifd * (*)(void)’ from incompatible pointer type ‘struct ifd * (*)(u_int32_t,  struct tiffmeta *)’ {aka ‘struct ifd * (*)(unsigned int,  struct tiffmeta *)’} [-Wincompatible-pointer-types]
   58 |         { EXIF_MKR_SIGMA, "sigma", sigma_prop, sigma_ifd },
      |                                                ^~~~~~~~~
makers.c:58:48: note: (near initialization for ‘makers[12].ifdfun’)
makers.h:110:20: note: ‘sigma_ifd’ declared here
  110 | extern struct ifd *sigma_ifd(u_int32_t offset, struct tiffmeta *md);
      |                    ^~~~~~~~~
make[1]: *** [Makefile:30: makers.o] Error 1
make[1]: *** Waiting for unfinished jobs....
exif.c: In function ‘postprop’:
exif.c:255:33: error: too many arguments to function ‘makers[(int)t->mkrval].propfun’; expected 0, have 2
  255 |                                 makers[t->mkrval].propfun(prop, t);
      |                                 ^~~~~~                    ~~~~
In file included from exif.c:57:
makers.h:55:16: note: declared here
   55 |         void (*propfun)();              /* Function to parse properties. */
      |                ^~~~~~~
exif.c: In function ‘parsetag’:
exif.c:596:37: error: too many arguments to function ‘makers[(int)t->mkrval].ifdfun’; expected 0, have 2
  596 |                                     makers[t->mkrval].ifdfun(prop->value, md);
      |                                     ^~~~~~                   ~~~~~~~~~~~
makers.h:56:23: note: declared here
   56 |         struct ifd *(*ifdfun)();        /* Function to read IFD. */
      |                       ^~~~~~
canon.c: In function ‘canon_subval’:
canon.c:1147:32: error: too many arguments to function ‘valfun’; expected 0, have 4
 1147 |                 if (valfun && !valfun(aprop, prop, off, t)) {
      |                                ^~~~~~ ~~~~~
canon.c: In function ‘canon_prop’:
canon.c:1254:58: error: passing argument 4 of ‘canon_subval’ from incompatible pointer type [-Wincompatible-pointer-types]
 1254 |                 if (!canon_subval(prop, t, canon_tags01, canon_prop01))
      |                                                          ^~~~~~~~~~~~
      |                                                          |
      |                                                          int (*)(struct exifprop *, struct exifprop *, unsigned char *, struct exiftags *)
canon.c:1107:36: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(struct exifprop *, struct exifprop *, unsigned char *, struct exiftags *)’
 1107 |     struct exiftag *subtags, int (*valfun)())
      |                              ~~~~~~^~~~~~~~~
canon.c:938:1: note: ‘canon_prop01’ declared here
  938 | canon_prop01(struct exifprop *aprop, struct exifprop *prop,
      | ^~~~~~~~~~~~
canon.c:1290:53: error: passing argument 4 of ‘canon_subval’ from incompatible pointer type [-Wincompatible-pointer-types]
 1290 |                 canon_subval(prop, t, canon_tags04, canon_prop04);
      |                                                     ^~~~~~~~~~~~
      |                                                     |
      |                                                     int (*)(struct exifprop *, struct exifprop *, unsigned char *, struct exiftags *)
canon.c:1107:36: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(struct exifprop *, struct exifprop *, unsigned char *, struct exiftags *)’
 1107 |     struct exiftag *subtags, int (*valfun)())
      |                              ~~~~~~^~~~~~~~~
canon.c:1003:1: note: ‘canon_prop04’ declared here
 1003 | canon_prop04(struct exifprop *aprop, struct exifprop *prop,
      | ^~~~~~~~~~~~
canon.c:1294:58: error: passing argument 4 of ‘canon_subval’ from incompatible pointer type [-Wincompatible-pointer-types]
 1294 |                 if (!canon_subval(prop, t, canon_tagsA0, canon_propA0))
      |                                                          ^~~~~~~~~~~~
      |                                                          |
      |                                                          int (*)(struct exifprop *, struct exifprop *, unsigned char *, struct exiftags *)
canon.c:1107:36: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(struct exifprop *, struct exifprop *, unsigned char *, struct exiftags *)’
 1107 |     struct exiftag *subtags, int (*valfun)())
      |                              ~~~~~~^~~~~~~~~
canon.c:1084:1: note: ‘canon_propA0’ declared here
 1084 | canon_propA0(struct exifprop *aprop, struct exifprop *prop,
      | ^~~~~~~~~~~~
make[1]: *** [Makefile:30: exif.o] Error 1
make[1]: *** [Makefile:30: canon.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/exiftags-1.01'
dh_auto_build: error: make -j8 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1096599#14
Date:
2025-09-06 12:51:53 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
exiftags, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1096599@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Laszlo Boszormenyi (GCS) <gcs@debian.org> (supplier of updated exiftags package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 06 Sep 2025 13:42:40 +0200
Source: exiftags
Architecture: source
Version: 1.01-8
Distribution: unstable
Urgency: medium
Maintainer: Laszlo Boszormenyi (GCS) <gcs@debian.org>
Changed-By: Laszlo Boszormenyi (GCS) <gcs@debian.org>
Closes: 1096599
Changes:
 exiftags (1.01-8) unstable; urgency=medium
 .
   * Declare function arguments for function pointers (closes: #1096599).
   * Update debhelper level to 13 .
   * Update Standards-Version to 4.7.2 .
Checksums-Sha1:
 6607d093320fb4e112e3429188af679eddedf9e2 1712 exiftags_1.01-8.dsc
 627e8bf4c1e9ab2c6c8c7c352fd09a0cf4be67b7 6128 exiftags_1.01-8.debian.tar.xz
Checksums-Sha256:
 87b4a42d5bde16d95ab2afe437c48800bbe153a08887d441fd1b336b0d3c56e2 1712 exiftags_1.01-8.dsc
 ab45f09f55c43caae9ede45d137f1a9236c72690cefc0fe37ae863c8a71745f3 6128 exiftags_1.01-8.debian.tar.xz
Files:
 a77bd71a2a05ad183c545d31af408a85 1712 graphics optional exiftags_1.01-8.dsc
 fc123ec9f5c025a1c8ff7519cc7a0305 6128 graphics optional exiftags_1.01-8.debian.tar.xz
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEfYh9yLp7u6e4NeO63OMQ54ZMyL8FAmi8IhAACgkQ3OMQ54ZM
yL+OEw//V1SxnMMt/N3jCF4eGR9QcLW2gR9wZ3NxwrQ3o9sPGlevc4t1b1JUN4IJ
ZAMJMzO+jUzCfzwSW/9zkkWC9jIw6QmipxDY3KSNIQgBA7kh2C1xRpkXaINDwrKo
todnq/qdxYgobot0LTnBnvz2hxu7hd9n5GZF1u8bQmJPGZl633QPL+zgrqbLB68A
ALNpLelQnQdF9RTX34pAqgC4C3NSkMtHieASByBXCtGZsN2JoSjtWFo6yfzRSSaN
CEjtVl3CE2fLE1J8RLJd3r168ZgBZtI68OedCHgp6GaPr68erWkHzhau6d8627/S
bHPfuhCOGExk5I/kREQux8tEcHNbifFEEy9BCdaFI5DFQIPXcRCvJR5R2HCNELpT
wvjZBwqSFNNiU7RdGXZm82ILKF9sy/rCj3OSWEH25qZM2wAnmnk4NYuE8f5cBQhh
vAFJbvvjxEh4eCIIF+H5TKhXBQ3kFCu5QfKGQJ7Lf0GwLWLGluKJtQs9CEctD45f
TGxv2C6csI0phb0AtfpEWo1wy4UHIi9u8QR8cNTHQADDzwvZdpoWYNb/ykOIllOZ
nGu/FwRwf6VtidG83LPKt2rqfdErvyL9Jkyw6bGQF475InezhDGil/rcY2x+pHVL
tayQfzH9Iyey6UZh0/JvI2+COrb7/S4eUYrHKscOPaPFNaQ7ohA=
=5pcq
-----END PGP SIGNATURE-----