codrsquad / codrsquad/portable-python

Request: Add a step-by-step guide explaining how to get a portable python build on linux

Open
#9 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation good first issue
Dominant language
Python
Stars
86
Forks
13
PR merge metrics
No merged PRs in 30d

Description

Hello,

Thank your your work on this tool !

I'm trying to get a portable build of python 3.10 out of portable-python and I'm probably missing something because builds are... not portable :'(

Here is what I have tried to far in docker running ubuntu:18.04

apt update && apt install python3-pip gcc make libffi-dev zlib1g-dev
pip3 install portable-python
portable-python build 3.10.9

The build succeeds but the resulting python build is linked against libffi and libz:

        prefix  /build/ppp-marker/3.9.16
          _bz2  *absent* None
       _ctypes  1.1.0 _ctypes*.so ffi:6
       _curses  *absent* None
          _dbm  *absent* None
      _decimal  1.70 _decimal*.so
         _gdbm  *absent* None
         _lzma  _lzma*.so
      _sqlite3  *absent* None
          _ssl  *absent* None
      _tkinter  *absent* None
         _uuid  *absent* None
           pip  22.0.4 lib/python3.9/site-packages/pip
       pyexpat  2.5.0 pyexpat*.so
      readline  *absent* None
    setuptools  58.1.0 lib/python3.9/site-packages/setuptools
          zlib  1.2.11 zlib*.so z:1
  libpython*.a  67 MB lib/libpython3.9.a lib/python3.9/config-3.9-x86_64-linux-gnu/libpython3.9.a
 libpython*.so  -not used-
  install size  122 MB
ERROR Build failed: Uses system libs: /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/x86_64-linux-gnu/libffi.so.6
INFO Compiling cpython took 6 minutes 46 seconds
INFO Overall compilation took 6 minutes 57 seconds

What should I do to get a fully portable build? And could we document that in a step-by-step how-to guide?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the portable-python build 3.10.9 entry point and reproduce the commands shown in the issue inside ubuntu:18.04. Trace why the resulting build reports /lib/x86_64-linux-gnu/libz.so.1 and /usr/lib/x86_64-linux-gnu/libffi.so.6 as system libraries. Done means a step-by-step how-to explains how to produce a fully portable Python build.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
Half a day
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.