<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>