python3.7 might need a rebuild against the new glibc 2.30 - fails with stropts define

Bug #1842618 reported by Christian Ehrhardt  on 2019-09-04
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python3.7 (Ubuntu)
Undecided
Unassigned

Bug Description

Hi,
this was triggered by an issue rebuilding samba in Eoan.

In file included from ../../source4/heimdal_build/krb5-types.h:8,
                 from ../../source4/heimdal/lib/krb5/krb5.h:42,
                 from ../../lib/replace/system/kerberos.h:33,
                 from ../../auth/credentials/pycredentials.c:34:
../../lib/replace/system/network.h:91:10: fatal error: stropts.h: No such file or directory
   91 | #include <stropts.h>
      | ^~~~~~~~~~~

After some initial confusion it turned out that nothing in samba enables HAVE_STROPTS_H and the configure stage properly detects:

Checking for header stropts.h : no

Never the less this triggered:
../../lib/replace/system/network.h
#ifdef HAVE_STROPTS_H
#include <stropts.h>
#endif

And due to glibc 2.30 containing [1] no stropts files are shipped anymore.
Therefore the above failure happens and the build aborts.

But since nothing in samba defines HAVE_STROPTS_H I had to reach out and checked an eoan-proposed build environment. There I found that python (this part of samba builds pycredentials.c and therefore has python related includes) is the root cause for this.

usr/include/x86_64-linux-gnu/python3.7m/pyconfig.h:986:#define HAVE_STROPTS_H 1

So everything that includes pyconfig.h direct or indirect and then based on HAVE_STROPTS_H will include stropts.h will be a broken build right now.

pyconfig.h is generated on the build of python, so I guess we need a no change rebuild of python to resolve this?

[1]: https://github.com/bminor/glibc/commit/a0a0dc83173ce11ff45105fd32e5d14356cdfb9c

I hope I outlined the case with enough details, but this contains enough assumptions that I'm not going to upload anything myself. But python and glibc being the major elements in this clearly point to doko/infinitry - so I'll subscribe them here and hope they will fill in the gaps (if any) and resolve it.

P.S. adding samba as a "invalid" task for tracking purposes

I double checked, the last build of python in Eoan [1] still was against libc6-dev 2.29.

[1]: https://launchpadlibrarian.net/438501761/buildlog_ubuntu-eoan-amd64.python3.7_3.7.4-3_BUILDING.txt.gz

From IRC:
[09:53] <cpaelzer> doko: I think I found an issue in glibc 2.30 vs python triggering further issues in samba https://bugs.launchpad.net/ubuntu/+source/python3.7/+bug/1842618
[09:54] <cpaelzer> doko: once you are around it would be great if you could let me know if you agree and schedule a python3 rebuild or if it is more complex than that
[09:54] <cpaelzer> because in case of the latter we might (for now) add some silly but working [10:09] <doko> cpaelzer: uploaded

And I see [1] building:
python3.7 (3.7.4-4) unstable; urgency=medium
  * Update to 20190904 from the 3.7 branch.

There is no bug reference, so it won't be updated automatically.
But I might recheck if it reached proposed later and then retest a samba build.

Thanks Doko for the quick upload, it seems you had an upload in mind anyway :-)

[1]: https://launchpad.net/ubuntu/+source/python3.7/3.7.4-4

The new python is built and the samba builds now succeed -> Fix Released

Changed in python3.7 (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers