Skip to content
  • John Snow's avatar
    dd84028f
    python: add mkvenv.py · dd84028f
    John Snow authored
    
    
    This script will be responsible for building a lightweight Python
    virtual environment at configure time. It works with Python 3.6 or
    newer.
    
    It has been designed to:
    - work *offline*, no PyPI required.
    - work *quickly*, The fast path is only ~65ms on my machine.
    - work *robustly*, with multiple fallbacks to keep things working.
    - work *cooperatively*, using system packages where possible.
      (You can use your distro's meson, no problem.)
    
    Due to its unique position in the build chain, it exists outside of the
    installable python packages in-tree and *must* be runnable without any
    third party dependencies.
    
    Under normal circumstances, the only dependency required to execute this
    script is Python 3.6+ itself. The script is *faster* by several seconds
    when setuptools and pip are installed in the host environment, which is
    probably the case for a typical multi-purpose developer workstation.
    
    In the event that pip/setuptools are missing or not usable, additional
    dependencies may be required on some distributions which remove certain
    Python stdlib modules to package them separately:
    
    - Debian may require python3-venv to provide "ensurepip"
    - NetBSD may require py310-expat to provide "pyexpat" *
      (* Or whichever version is current for NetBSD.)
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
    Message-Id: <20230511035435.734312-4-jsnow@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    dd84028f
    python: add mkvenv.py
    John Snow authored
    
    
    This script will be responsible for building a lightweight Python
    virtual environment at configure time. It works with Python 3.6 or
    newer.
    
    It has been designed to:
    - work *offline*, no PyPI required.
    - work *quickly*, The fast path is only ~65ms on my machine.
    - work *robustly*, with multiple fallbacks to keep things working.
    - work *cooperatively*, using system packages where possible.
      (You can use your distro's meson, no problem.)
    
    Due to its unique position in the build chain, it exists outside of the
    installable python packages in-tree and *must* be runnable without any
    third party dependencies.
    
    Under normal circumstances, the only dependency required to execute this
    script is Python 3.6+ itself. The script is *faster* by several seconds
    when setuptools and pip are installed in the host environment, which is
    probably the case for a typical multi-purpose developer workstation.
    
    In the event that pip/setuptools are missing or not usable, additional
    dependencies may be required on some distributions which remove certain
    Python stdlib modules to package them separately:
    
    - Debian may require python3-venv to provide "ensurepip"
    - NetBSD may require py310-expat to provide "pyexpat" *
      (* Or whichever version is current for NetBSD.)
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
    Message-Id: <20230511035435.734312-4-jsnow@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading