[Debian-med-packaging] Bug#1027335: pairtools -- FTBFS in unstable

Nilesh Patra nilesh at debian.org
Fri Dec 30 19:32:48 GMT 2022


Control: severity -1 normal
Control: retitle -1 pairtools -- current repo in salsa FTBFS
Control: clone -1 -2
Control: reassign -2 python3-pysam 0.20.0+ds-2
Control: retitle -2 pysam -- no definition for bam_dup1

On Fri, Dec 30, 2022 at 08:24:42PM +0530, Nilesh Patra wrote:
> On Fri, 30 Dec 2022 20:05:32 +0530 Nilesh Patra <nilesh at debian.org> wrote:
> > Source: pairtools
> > Version: 0.3.0-3.2
> > Severity: serious
> > 
> > Pairtools FTBFS with pysam related error. Looks like
> > something is off.
> > 
> > dh_auto_clean
> > I: pybuild base:240: python3.11 setup.py clean 
> > Traceback (most recent call last):                                                                                                                                                                                
> >   File "/<<PKGBUILDDIR>>/setup.py", line 130, in <module>
> >     ext_modules=get_ext_modules(),
> >                 ^^^^^^^^^^^^^^^^^
> >   File "/<<PKGBUILDDIR>>/setup.py", line 81, in get_ext_modules
> >     extra_link_args=pysam.get_libraries(),
> >                     ^^^^^^^^^^^^^^^^^^^^^
> >   File "/usr/lib/python3/dist-packages/pysam/__init__.py", line 100, in get_libraries
> >     return [os.path.join(dirname, x + so) for x in pysam_libs]
> >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >   File "/usr/lib/python3/dist-packages/pysam/__init__.py", line 100, in <listcomp>
> >     return [os.path.join(dirname, x + so) for x in pysam_libs]
> >                                   ~~^~~~
> > TypeError: can only concatenate str (not "NoneType") to str
> 
> This patch in pysam gets the build in pairtools going beyond this point, but now the build chokes with:
> 
> | pairtools.cli (unittest.loader._FailedTest.pairtools.cli) ... ERROR                                                                                                                                               
> | pairtools.lib (unittest.loader._FailedTest.pairtools.lib) ... ERROR
> |
> | ======================================================================
> | ERROR: pairtools.cli (unittest.loader._FailedTest.pairtools.cli)
> | ----------------------------------------------------------------------
> | ImportError: Failed to import test module: pairtools.cli
> | Traceback (most recent call last):
> |  File "/usr/lib/python3.11/unittest/loader.py", line 440, in _find_test_path
> |    package = self._get_module_from_name(name)
> |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> |  File "/usr/lib/python3.11/unittest/loader.py", line 350, in _get_module_from_name
> |    __import__(name)
> |  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/pairtools/cli/__init__.py", line 188, in <module>
> |    from . import (
> |  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/pairtools/cli/dedup.py", line 12, in <module>
> |    from ..lib import fileio, pairsam_format, headerops
> |  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/pairtools/lib/__init__.py", line 7, in <module>
> |    from . import parse
> |  File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/pairtools/lib/parse.py", line 38, in <module>
> |    from .parse_pysam import get_mismatches_c
> | ImportError: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/pairtools/lib/parse_pysam.cpython-311-x86_64-linux-gnu.so: undefined symbol: bam_dup1

Turns out this is because there is just a function "declaration" in pysam/libchtslib.pxd for bam_dup1.
But the headers imported do not even have the function.

I patched the current package in salsa to get the ball rolling. But this needs bioframe.

Also, the below patch still needs to be applied to pysam. pushed to salsa.

> Description: Add patch to return proper sysconf so for current python
> Author: Nilesh Patra <nilesh at debian.org>
> Last-Update: 2022-12-30
> --- a/pysam/__init__.py
> +++ b/pysam/__init__.py
> @@ -96,5 +96,7 @@
>      if pysam.config.HTSLIB == "builtin":
>          pysam_libs.append('libchtslib')
>  
> -    so = sysconfig.get_config_var('SO')
> +    so = sysconfig.get_config_var('EXT_SUFFIX')
> +    if not so: 
> +        so = sysconfig.get_config_var('SO')
>      return [os.path.join(dirname, x + so) for x in pysam_libs]
> 

-- 
Best,
Nilesh
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20221231/bd9cbc90/attachment.sig>


More information about the Debian-med-packaging mailing list