FTBFS with glibc 2.43 due to ISO C23 const return types

Hello,

this is a copy of the Debian bug #1128748.

Dear maintainer(s),

sane-backends fails to build from source with glibc 2.43, currently in experimental. From the build log:

| /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include/sane -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/etc/sane.d -DPATH_SANE_DATA_DIR=/usr/share -DPATH_SANE_LOCK_DIR=/var/lock -DV_MAJOR=1 -DV_MINOR=2 -I. -I. -I../include -I../include -I/usr/include/libusb-1.0 -DLIBDIR=""/usr/lib/aarch64-linux-gnu/sane"" -DDEB_DLL_LIBDIR=""/usr/lib/aarch64-linux-gnu/sane:/usr/lib/sane:/usr/lib64/sane"" -I/usr/include/gphoto2 -DBACKEND_NAME=gphoto2 -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wextra -pedantic -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/sane-backends-1.4.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -c -o libgphoto2_i_la-gphoto2.lo test -f 'gphoto2.c' || echo './'gphoto2.c | gphoto2.c: In function 'get_info': | gphoto2.c:589:60: error: assignment of read-only location '*(const char *)strchr((const char )(folder_list + (sizetype)((long unsigned int)n * 8)), 32)' | 589 | *strchr ((const char *) folder_list[n], ' ') = '\0'; | | ^ | make[5]: *** [Makefile:5842: libgphoto2_i_la-gphoto2.lo] Error 1 | make[5]: Leaving directory '/build/reproducible-path/sane-backends-1.4.0/backend' | make[4]: *** [Makefile:4308: all] Error 2 | make[4]: Leaving directory '/build/reproducible-path/sane-backends-1.4.0/backend' | make[3]: *** [Makefile:613: all-recursive] Error 1 | make[3]: Leaving directory '/build/reproducible-path/sane-backends-1.4.0' | make[2]: *** [Makefile:503: all] Error 2 | make[2]: Leaving directory '/build/reproducible-path/sane-backends-1.4.0' | make[1]: *** [debian/rules:64: override_dh_auto_build-indep] Error 2 | make[1]: Leaving directory '/build/reproducible-path/sane-backends-1.4.0' | make: *** [debian/rules:23: binary] Error 2 | dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2

The full build log is available here [1].

The issue is due to ISO C23 declaration of bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr, which now returns a pointer to a const-qualified type when the input argument is a pointer to a const-qualified type [2].

I would like to thanks Emanuele Rocca for doing the archive rebuild on a fast arm64 server.

Regards Aurelien

[1] https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/sane-backends_arm64.build [2] https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=e271fb2e4d76903c77a302aaec1ca22ce31027d0;hb=f762ccf84f122d1354f103a151cba8bde797d521#l19

CU Jörg

Assignee Loading
Time tracking Loading