[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