Difference between revisions of "Python3"

From SambaWiki
Jump to: navigation, search
(more links)
(more detail on ABI naming issues)
Line 15: Line 15:
  
 
[https://lists.alioth.debian.org/pipermail/pkg-samba-maint/2016-April/018139.html The original discussion on the Debian Samba package maintainers list]
 
[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.

Revision as of 07:41, 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.