<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>The samba FTBFS is blocking the python 3.8 transition in raspbian
bullseye, so I decided to take a look.<br>
<br>
<blockquote type="cite">error: Unable to determine origin of type
`struct cli_credentials'</blockquote>
I don't think this is the error that is causing the build failure.
The same error can be seen in succesful build logs. e.g.
<a class="moz-txt-link-freetext" href="https://buildd.debian.org/status/fetch.php?pkg=samba&arch=amd64&ver=2%3A4.11.5%2Bdfsg-1%2Bb1&stamp=1583775414&raw=0">https://buildd.debian.org/status/fetch.php?pkg=samba&arch=amd64&ver=2%3A4.11.5%2Bdfsg-1%2Bb1&stamp=1583775414&raw=0</a><br>
<br>
Instead I think the real error is further down the log<br>
<blockquote type="cite">
<pre class="message">../../lib/replace/system/network.h:91:10: fatal error: stropts.h: No such file or directory
</pre>
</blockquote>
Some googling lead me to <a class="moz-txt-link-freetext" href="https://bugs.gentoo.org/699668">https://bugs.gentoo.org/699668</a> and
<a class="moz-txt-link-freetext" href="https://bugzilla.samba.org/show_bug.cgi?id=14100">https://bugzilla.samba.org/show_bug.cgi?id=14100</a> which suggests
that the bug triggers if samba is built against a newer glibc
while python was built against an older glibc. Specifically it
seems python headers leak certain system feature defines including
HAVE_STROPTS_H which cause network.h to think stropts.h is
available when it isn't.<br>
</p>
<p>If my understanding is correct I see two possible ways forward.<br>
<br>
1. Rebuild python3.8 against the new glibc.<br>
2. Remove the stropts include from samba, it doesn't seem to
actually be used for anything (at least I can't find any other
references to HAVE_STROPTS_H in the code).</p>
<p>I am currently testing a build in raspbian bullseye with the
second approach. I will report back later on whether it results in
a succesful build.<br>
<br>
</p>
</body>
</html>