Python3: Difference between revisions

From SambaWiki
(add tracker bugs)
 
 
(3 intermediate revisions by the same user not shown)
Line 7: Line 7:


[https://bugs.debian.org/802484 Debian tracker bug]
[https://bugs.debian.org/802484 Debian tracker bug]

=ABI naming issues=

Samba is special in the way we use python, and the pytalloc-util and pyldb-util libraries are possibly unique in the Python / C binding ecosystem.

[https://lists.samba.org/archive/samba-technical/2017-July/121609.html A recent discussion of the issue]

[https://lists.alioth.debian.org/pipermail/pkg-samba-maint/2016-April/018139.html The original discussion on the Debian Samba package maintainers list]

==ABI files for -util libraries==

Samba maintains files in ABI/ in each library containing the list of symbols and the full prototype for those symbols. These are extracted using nm, GDB and horrible hacks in shell.

There needs to be one ABI file for python2 and another for Python3 as sometimes code is #ifdef for Python3, for example PyCObject_FromVoidPtr is not in Python3.

However, we must not encode the the full python3 version, nor the host ABI into this file, as it is committed into our repo and people build on different platforms.

Therefore the full python ABI string is replaced with .py3 in that file, and in the name for that file.

[https://lists.samba.org/archive/samba-technical/2017-September/123028.html The most recent patch to sort this out]

Latest revision as of 08:18, 26 January 2018

Samba upstream tracker

Samba Python3 support tracking bug

Upstream Tracker issues

Red Hat tracker bug

Debian tracker bug

ABI naming issues

Samba is special in the way we use python, and the pytalloc-util and pyldb-util libraries are possibly unique in the Python / C binding ecosystem.

A recent discussion of the issue

The original discussion on the Debian Samba package maintainers list

ABI files for -util libraries

Samba maintains files in ABI/ in each library containing the list of symbols and the full prototype for those symbols. These are extracted using nm, GDB and horrible hacks in shell.

There needs to be one ABI file for python2 and another for Python3 as sometimes code is #ifdef for Python3, for example PyCObject_FromVoidPtr is not in Python3.

However, we must not encode the the full python3 version, nor the host ABI into this file, as it is committed into our repo and people build on different platforms.

Therefore the full python ABI string is replaced with .py3 in that file, and in the name for that file.

The most recent patch to sort this out