Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failing to install pysam using Ubuntu 24.04 #11466

Open
2 of 16 tasks
korikuzma opened this issue Jan 24, 2025 · 1 comment
Open
2 of 16 tasks

Failing to install pysam using Ubuntu 24.04 #11466

korikuzma opened this issue Jan 24, 2025 · 1 comment

Comments

@korikuzma
Copy link

korikuzma commented Jan 24, 2025

Description

Unable to install pysam using Ubuntu 24.04 (works for 22.04) with Python 3.13

Platforms affected

  • Azure DevOps
  • GitHub Actions - Standard Runners
  • GitHub Actions - Larger Runners

Runner images affected

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Ubuntu 24.04
  • macOS 12
  • macOS 13
  • macOS 13 Arm64
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • Windows Server 2019
  • Windows Server 2022
  • Windows Server 2025

Image version and build link

Version: 20250120.5.0

https://github.com/cancervariants/metakb/actions/runs/12952944009/job/36131456323

Is it regression?

No

Expected behavior

I expect pysam to install correctly, like it does with Ubuntu 22.04 (job where build succeeds: https://github.com/cancervariants/metakb/actions/runs/12953498444/job/36133302431).

Actual behavior

Downloading pysam-0.22.1.tar.gz (4.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.6/4.6 MB 151.1 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
  error: subprocess-exited-with-error
  
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [172 lines of output]
      # pysam: cython is available - using cythonize if necessary
      # pysam: htslib mode is shared
      # pysam: HTSLIB_CONFIGURE_OPTIONS=None
      # pysam: (sysconfig) CC=gcc
      # pysam: (sysconfig) CFLAGS=-fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC
      # pysam: (sysconfig) LDFLAGS=-Wl,--rpath=/opt/hostedtoolcache/Python/3.13.1/x64/lib -Wl,--rpath=/opt/hostedtoolcache/Python/3.13.1/x64/lib
      checking for gcc... gcc
      checking whether the C compiler works... yes
      checking for C compiler default output file name... a.out
      checking for suffix of executables...
      checking whether we are cross compiling... no
      checking for suffix of object files... o
      checking whether we are using the GNU C compiler... yes
      checking whether gcc accepts -g... yes
      checking for gcc option to accept ISO C89... none needed
      checking for ranlib... ranlib
      checking for grep that handles long lines and -e... /usr/bin/grep
      checking for C compiler warning flags... -Wall
      checking how to run the C preprocessor... gcc -E
      checking for egrep... /usr/bin/grep -E
      checking for ANSI C header files... yes
      checking for sys/types.h... yes
      checking for sys/stat.h... yes
      checking for stdlib.h... yes
      checking for string.h... yes
      checking for memory.h... yes
      checking for strings.h... yes
      checking for inttypes.h... yes
      checking for stdint.h... yes
      checking for unistd.h... yes
      checking whether _XOPEN_SOURCE is declared... no
      checking C compiler flags needed for ssse3... -mssse3
      checking C compiler flags needed for popcnt... -mpopcnt
      checking C compiler flags needed for sse4.1... -msse4.1
      checking C compiler flags needed for avx2... -mavx2
      checking C compiler flags needed for avx512f... -mavx512f
      checking for pkg-config... /usr/bin/pkg-config
      checking pkg-config is at least version 0.9.0... yes
      checking for special C compiler options needed for large files... no
      checking for _FILE_OFFSET_BITS value needed for large files... no
      checking shared library type for unknown-Linux... plain .so
      checking whether the linker supports versioned symbols... no
      checking whether the compiler accepts -fvisibility=hidden... yes
      checking for stdlib.h... (cached) yes
      checking for unistd.h... (cached) yes
      checking for sys/param.h... yes
      checking for getpagesize... yes
      checking for working mmap... yes
      checking for gmtime_r... yes
      checking for fsync... yes
      checking for drand48... yes
      checking for srand48_deterministic... no
      checking whether fdatasync is declared... yes
      checking for fdatasync... yes
      checking for library containing log... -lm
      checking for zlib.h... yes
      checking for inflate in -lz... yes
      checking for library containing recv... none required
      checking for bzlib.h... no
      checking for BZ2_bzBuffToBuffCompress in -lbz2... no
      configure: error: libbzip2 development files not found
      
      The CRAM format may use bzip2 compression, which is implemented in HTSlib
      by using compression routines from libbzip2 <http://www.bzip.org/>.
      
      Building HTSlib requires libbzip2 development files to be installed on the
      build machine; you may need to ensure a package such as libbz2-dev (on Debian
      or Ubuntu Linux) or bzip2-devel (on RPM-based Linux distributions or Cygwin)
      is installed.
      
      Either configure with --disable-bz2 (which will make some CRAM files
      produced elsewhere unreadable) or resolve this error to build HTSlib.
      checking for gcc... gcc
      checking whether the C compiler works... yes
      checking for C compiler default output file name... a.out
      checking for suffix of executables...
      checking whether we are cross compiling... no
      checking for suffix of object files... o
      checking whether we are using the GNU C compiler... yes
      checking whether gcc accepts -g... yes
      checking for gcc option to accept ISO C89... none needed
      checking for ranlib... ranlib
      checking for grep that handles long lines and -e... /usr/bin/grep
      checking for C compiler warning flags... -Wall
      checking how to run the C preprocessor... gcc -E
      checking for egrep... /usr/bin/grep -E
      checking for ANSI C header files... yes
      checking for sys/types.h... yes
      checking for sys/stat.h... yes
      checking for stdlib.h... yes
      checking for string.h... yes
      checking for memory.h... yes
      checking for strings.h... yes
      checking for inttypes.h... yes
      checking for stdint.h... yes
      checking for unistd.h... yes
      checking whether _XOPEN_SOURCE is declared... no
      checking C compiler flags needed for ssse3... -mssse3
      checking C compiler flags needed for popcnt... -mpopcnt
      checking C compiler flags needed for sse4.1... -msse4.1
      checking C compiler flags needed for avx2... -mavx2
      checking C compiler flags needed for avx512f... -mavx512f
      checking for pkg-config... /usr/bin/pkg-config
      checking pkg-config is at least version 0.9.0... yes
      checking for special C compiler options needed for large files... no
      checking for _FILE_OFFSET_BITS value needed for large files... no
      checking shared library type for unknown-Linux... plain .so
      checking whether the linker supports versioned symbols... no
      checking whether the compiler accepts -fvisibility=hidden... yes
      checking for stdlib.h... (cached) yes
      checking for unistd.h... (cached) yes
      checking for sys/param.h... yes
      checking for getpagesize... yes
      checking for working mmap... yes
      checking for gmtime_r... yes
      checking for fsync... yes
      checking for drand48... yes
      checking for srand48_deterministic... no
      checking whether fdatasync is declared... yes
      checking for fdatasync... yes
      checking for library containing log... -lm
      checking for zlib.h... yes
      checking for inflate in -lz... yes
      checking for library containing recv... none required
      checking for bzlib.h... no
      checking for BZ2_bzBuffToBuffCompress in -lbz2... no
      configure: error: libbzip2 development files not found
      
      The CRAM format may use bzip2 compression, which is implemented in HTSlib
      by using compression routines from libbzip2 <http://www.bzip.org/>.
      
      Building HTSlib requires libbzip2 development files to be installed on the
      build machine; you may need to ensure a package such as libbz2-dev (on Debian
      or Ubuntu Linux) or bzip2-devel (on RPM-based Linux distributions or Cygwin)
      is installed.
      
      Either configure with --disable-bz2 (which will make some CRAM files
      produced elsewhere unreadable) or resolve this error to build HTSlib.
      config.mk:2: *** Resolve configure error first.  Stop.
      # pysam: htslib configure options: None
      Traceback (most recent call last):
        File "/opt/hostedtoolcache/Python/3.13.1/x64/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
          ~~~~^^
        File "/opt/hostedtoolcache/Python/3.13.1/x64/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.13.1/x64/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-fdy8p7wc/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
                 ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-fdy8p7wc/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File "/tmp/pip-build-env-fdy8p7wc/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 522, in run_setup
          super().run_setup(setup_script=setup_script)
          ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-fdy8p7wc/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 320, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 437, in <module>
        File "<string>", line 81, in run_make_print_config
        File "/opt/hostedtoolcache/Python/3.13.1/x64/lib/python3.13/subprocess.py", line 472, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
                 ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     **kwargs).stdout
                     ^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.13.1/x64/lib/python3.13/subprocess.py", line 577, in run
          raise CalledProcessError(retcode, process.args,
                                   output=stdout, stderr=stderr)
      subprocess.CalledProcessError: Command '['make', '-s', 'print-config']' returned non-zero exit status 2.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

Repro steps

Create GH action:

on: push

jobs:
  install_pysam:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.11", "3.12", "3.13"]
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install dependencies
        run: python3 -m pip install pysam

3.11 and 3.12 will pass, but 3.13 will fail

@RaviAkshintala
Copy link
Contributor

Hi @korikuzma Thank you for bringing this issue to our attention. We will look into this issue and will update you after investigating.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants