[From nobody Wed Aug 12 15:37:06 2026
Received: (at maintonly) by bugs.debian.org; 22 Feb 2026 16:16:57 +0000
X-Spam-Checker-Version: SpamAssassin 4.0.1-bugs.debian.org_2005_01_02
 (2024-03-25) on buxtehude.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-105.1 required=4.0 tests=BAYES_00,DKIMWL_WL_HIGH,
 DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,
 FROMDEVELOPER,MD5_SHA1_SUM,SPF_HELO_NONE,SPF_NONE,UNPARSEABLE_RELAY,
 USER_IN_DKIM_WELCOMELIST,WORD_WITHOUT_VOWELS autolearn=ham
 autolearn_force=no version=4.0.1-bugs.debian.org_2005_01_02
X-Spam-Bayes: score:0.0000 Tokens: new, 46; hammy, 150; neutral, 217; spammy,
 0. spammytokens:
 hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
 0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
 0.000-+--H*RT:311, 0.000-+--H*RT:108
Return-path: &lt;aurel32@debian.org&gt;
Received: from stravinsky.debian.org ([2001:41b8:202:deb::311:108]:34426)
 by buxtehude.debian.org with esmtps
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;aurel32@debian.org&gt;) id 1vuC8f-00DbFA-0P
 for maintonly@bugs.debian.org; Sun, 22 Feb 2026 16:16:57 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; 
 s=smtpauto.stravinsky;
 h=X-Debian-User:Content-Transfer-Encoding:Content-Type
 :MIME-Version:Message-ID:Subject:To:From:Date:Reply-To:Cc:Content-ID:
 Content-Description:In-Reply-To:References;
 bh=31Q4fI74TI99Omw5XcVeBubiz9ZrFXPgFZKOzPgKWBs=; b=cjVUywNEuPaI4VkzD5F+hcQ5Dv
 jFq2rjxorrNXnr6F2Fi7HZiMkLK+o3ygLcOxKRs7UzsWZNBwi8c8mFGojDfC2bnY6Z9WJ5kcf99/n
 YhrH+3L4HQ7CQ87473YhPezdpctkxmKSVla5oUcHl92f+iN9r4/nAaUQ0uekDroYfLHWm2zgffiA0
 daNWpQhSx3dmj4ueyvAfLXbAzruvQnqb3LsQHnnum+wb2hyrfndN01lVDUx5jizizq1KPIXsVp+Je
 6LA8FlHBOPQ0gbuT14SC6bzmwC3yrpkZqVtKaIBfkj5wRNCy7447QETCHfK5MWKgESvdSFdN8V67s
 PcL1GgSQ==;
Received: from authenticated user by stravinsky.debian.org with esmtpsa
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.94.2) (envelope-from &lt;aurel32@debian.org&gt;)
 id 1vuC8e-008JEp-SD
 for maintonly@bugs.debian.org; Sun, 22 Feb 2026 16:16:55 +0000
Received: from [2a01:e34:ec5d:a741:1ee1:92ff:feb4:5ec0] (helo=ohm.rr44.fr)
 by hall.aurel32.net with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2)
 (envelope-from &lt;aurel32@debian.org&gt;) id 1vuC8c-00000002eGJ-42VX
 for maintonly@bugs.debian.org; Sun, 22 Feb 2026 17:16:54 +0100
Date: Sun, 22 Feb 2026 17:16:54 +0100
From: Aurelien Jarno &lt;aurel32@debian.org&gt;
To: maintonly@bugs.debian.org
Subject: psychtoolbox-3: FTBFS with glibc 2.43 due to ISO C23 const return
 types
Message-ID: &lt;aZsr9gbzblkHMZOH@aurel32.net&gt;
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
User-Agent: Mutt/2.2.13 (2024-03-09)
X-Debian-User: aurel32
Delivered-To: maintonly@bugs.debian.org

Source: psychtoolbox-3
Version: 3.0.19.14.dfsg1-1
Severity: important
Tags: ftbfs upstream
Justification: fails to build from source
User: debian-glibc@lists.debian.org
Usertags: glibc-2.43

Dear maintainer(s),

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

| Common/Screen/PsychVideoCaptureSupportGStreamer.c: In function =E2=80=98P=
sychVideoBusCallback=E2=80=99:
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:512:13: warning: this =
=E2=80=98if=E2=80=99 clause does not guard... [-Wmisleading-indentation]
|   512 |             if (PsychPrefStateGet_Verbosity() &gt; 4) printf(&quot;PTB-DE=
BUG: Videobus: Message EOS received.\n&quot;); fflush(NULL);
|       |             ^~
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:512:108: note: ...this =
statement, but the latter is misleadingly indented as if it were guarded by=
 the =E2=80=98if=E2=80=99
|   512 |             if (PsychPrefStateGet_Verbosity() &gt; 4) printf(&quot;PTB-DE=
BUG: Videobus: Message EOS received.\n&quot;); fflush(NULL);
|       |                                                                  =
                                          ^~~~~~
| Common/Screen/PsychVideoCaptureSupportGStreamer.c: At top level:
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:687:1: warning: missing=
 initializer for field =E2=80=98_gst_reserved=E2=80=99 of =E2=80=98GstAppSi=
nkCallbacks=E2=80=99 [-Wmissing-field-initializers]
|   687 | };
|       | ^
| In file included from Common/Screen/PsychVideoCaptureSupportGStreamer.c:7=
8:
| /usr/include/gstreamer-1.0/gst/app/gstappsink.h:86:16: note: =E2=80=98_gs=
t_reserved=E2=80=99 declared here
|    86 |   gpointer     _gst_reserved[GST_PADDING - 2];
|       |                ^~~~~~~~~~~~~
| Common/Screen/PsychVideoCaptureSupportGStreamer.c: In function =E2=80=98C=
reateGStreamerElementFromString=E2=80=99:
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:1670:27: warning: assig=
nment discards =E2=80=98const=E2=80=99 qualifier from pointer target type [=
-Wdiscarded-qualifiers]
|  1670 |         codecPipelineSpec =3D strstr(codecSpec, typeSpec);
|       |                           ^
| Common/Screen/PsychVideoCaptureSupportGStreamer.c: In function =E2=80=98P=
sychGSVideoCaptureSetParameter=E2=80=99:
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:5181:44: error: assignm=
ent of read-only location =E2=80=98*(const char *)strstr(pname, (const char=
 *)&quot;:CodecType&quot;)=E2=80=99
|  5181 |             *(strstr(pname, &quot;:CodecType&quot;)) =3D 0;
|       |                                            ^
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:5122:11: warning: unuse=
d variable =E2=80=98oldfvalue=E2=80=99 [-Wunused-variable]
|  5122 |     float oldfvalue =3D FLT_MAX;
|       |           ^~~~~~~~~
| Common/Screen/PsychVideoCaptureSupportGStreamer.c: In function =E2=80=98P=
sychGSOpenVideoCaptureDevice=E2=80=99:
| Common/Screen/PsychVideoCaptureSupportGStreamer.c:3415:13: warning: =E2=
=80=98strncpy=E2=80=99 output truncated before terminating nul copying 14 b=
ytes from a string of the same length [-Wstringop-truncation]
|  3415 |             strncpy(codecSpec, &quot;DEFAULTenc    &quot;, strlen(&quot;DEFAULTe=
nc    &quot;));
|       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~~~~~
| error: mkoctfile: building exited with failure status
| error: ignoring const execution_exception&amp; while preparing to exit
| make[1]: *** [debian/rules:59: build-stamp] Error 1
| make[1]: Leaving directory '/build/reproducible-path/psychtoolbox-3-3.0.1=
9.14.dfsg1'
| make: *** [debian/rules:36: 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/psychtoolbo=
x-3_arm64.build
[2] https://sourceware.org/git/?p=3Dglibc.git;a=3Dblob;f=3DNEWS;h=3De271fb2=
e4d76903c77a302aaec1ca22ce31027d0;hb=3Df762ccf84f122d1354f103a151cba8bde797=
d521#l19

--=20
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net
]