#1128532 bs1770gain: FTBFS with glibc 2.43 due to ISO C23 const return types

Package:
src:bs1770gain
Source:
src:bs1770gain
Submitter:
Aurelien Jarno
Date:
2026-10-06 13:07:04 UTC
Severity:
normal
Tags:
#1128532#5
Date:
2026-02-20 22:28:34 UTC
From:
To:
Dear maintainer(s),

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

| gcc -DHAVE_CONFIG_H -I. -I..  -I../libpbutil -I../lib1770-2 -I/usr/include -Wdate-time -D_FORTIFY_SOURCE=2  -Wstrict-prototypes -Wextra -Wreturn-type -Wcast-qual -Wcast-align -Wpointer-arith -Wformat -Wall -Werror -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/bs1770gain-0.9.8=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -c -o ff_rm.o ff_rm.c
| ff_csv2avdict.c: In function ‘priv_name’:
| ff_csv2avdict.c:538:14: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
|   538 |     char *p1=strstr(p,"\\");
|       |              ^~~~~~
| ff_csv2avdict.c:539:14: error: initialization discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
|   539 |     char *p2=strstr(p,"/");
|       |              ^~~~~~
| cc1: all warnings being treated as errors
| make[3]: *** [Makefile:383: ff_csv2avdict.o] Error 1
| make[3]: *** Waiting for unfinished jobs....
| make[3]: Leaving directory '/build/reproducible-path/bs1770gain-0.9.8/libff'
| make[2]: *** [Makefile:396: all-recursive] Error 1
| make[2]: Leaving directory '/build/reproducible-path/bs1770gain-0.9.8'
| make[1]: *** [Makefile:337: all] Error 2
| make[1]: Leaving directory '/build/reproducible-path/bs1770gain-0.9.8'
| dh_auto_build: error: make -j128 returned exit code 2
| make: *** [debian/rules:7: binary] Error 25
| 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 arcbhive rebuild on
a fast arm64 server.

Regards
Aurelien

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

#1128532#10
Date:
2026-07-02 17:28:54 UTC
From:
To:
Hi,

the source code of bs1770gain is updated to version 0.9.9:
"http://pbelkner.de/projects/files/bs1770gain/bs1770gain/0.9.9/".

Unfortunately there seems no binary glibc 2.43 hence the fix is
untested. It consists in changing in "ff_csv2avdict.c" the declaration
of three variables from "char *" to "const char *".

Best regards

Peter

#1128532#17
Date:
2026-08-10 12:44:53 UTC
From:
To:
control: severity 1127629 serious
control: severity 1128547 serious
control: severity 1128734 serious
control: severity 1128740 serious
control: severity 1128528 serious
control: severity 1128532 serious
control: severity 1128534 serious
control: severity 1128541 serious
control: severity 1128544 serious
control: severity 1128545 serious
control: severity 1128548 serious
control: severity 1128549 serious
control: severity 1128551 serious
control: severity 1128615 serious
control: severity 1128678 serious
control: severity 1128680 serious
control: severity 1128681 serious
control: severity 1128697 serious
control: severity 1128736 serious
control: severity 1128737 serious
control: severity 1128738 serious
control: severity 1128741 serious
control: severity 1128742 serious
control: severity 1128743 serious
control: severity 1128750 serious
control: severity 1128757 serious
control: severity 1128761 serious
control: severity 1128763 serious
control: severity 1128764 serious
control: severity 1128875 serious
control: severity 1128952 serious
control: severity 1128542 serious
control: severity 1128679 serious
control: severity 1128682 serious
control: severity 1128744 serious
control: severity 1128748 serious
control: severity 1128867 serious

Hi,

With the upload of glibc 2.43 to unstable, the packages now FTBFS in
unstable, hence upgrading the severity to serious.

Note that as a quick workaround, it is possible to roll back to C/C++17
standard using -std=c17, -std=gnu17, std=c++17 or std=gnu++17. This was
the default up to GCC 14, and GCC 15 changed it to C/C23.

Regards
Aurelien

#1128532#22
Date:
2026-10-05 19:45:26 UTC
From:
To:
[Peter Belkner]

I have now tested this patch, which solve the problem.
--- bs1770gain-salsa.orig/libff/ff_csv2avdict.c +++ bs1770gain-salsa/libff/ff_csv2avdict.c @@ -535,9 +535,9 @@ static const char *priv_name(const char const char *p=s; for (;;) { - char *p1=strstr(p,"\\"); - char *p2=strstr(p,"/"); - char *p3=p1&&p2?(p2<p1?p1:p2):p1?p1:p2?p2:NULL; + const char *p1=strstr(p,"\\"); + const char *p2=strstr(p,"/"); + const char *p3=p1&&p2?(p2<p1?p1:p2):p1?p1:p2?p2:NULL; if (NULL==p3) break; I ran into issues with version 0.9.9 and newer ffmpeg, which need to be solved independently of this const problem.
#1128532#27
Date:
2026-10-06 13:04:56 UTC
From:
To:
Hello,

Bug #1128532 in bs1770gain 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/multimedia-team/bs1770gain/-/commit/4bf3416db5cb4577dd14923c8182eb55f2cd18d0
------------------------------------------------------------------------
Added 1010-strstr-const.patch to build with recent glibc.

Closes: #1128532.
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1128532