Any i686 library dependencies for platformio-core?

Hi, in the NixOS distribution we were encountering the issue, that the pyopenssl library (as dependency of one of the dependencies) fails to build for i686 ( https://github.com/NixOS/nixpkgs/pull/105454 ).
As of now the distro always pulled in i686 dependencies for all libraries and binaries which are either used or downloaded by platformio.
My question is if there are any executables which have a hard requirement towards any i686 libraries right now, if not we could disable the extra dependency and speed up the build and make the packaging more error-resistant.

Cheers!

Hm I think @ivankravets can answer that. The PlatformIO core is a Python module with the requirements

pipdeptree shows

platformio==5.0.4b1
  - bottle [required: <0.13, installed: 0.12.19]
  - click [required: >=5,<8,!=7.1.1,!=7.1, installed: 7.1.2]
  - colorama [required: Any, installed: 0.4.4]
  - marshmallow [required: >=2, installed: 3.9.1]
  - pyelftools [required: >=0.25,<1, installed: 0.27]
  - pyserial [required: >=3,<4,!=3.3, installed: 3.4]
  - requests [required: >=2.4.0,<3, installed: 2.25.0]
    - certifi [required: >=2017.4.17, installed: 2020.11.8]
    - chardet [required: >=3.0.2,<4, installed: 3.0.4]
    - idna [required: >=2.5,<3, installed: 2.10]
    - urllib3 [required: >=1.21.1,<1.27, installed: 1.26.2]
  - semantic-version [required: >=2.8.1,<3, installed: 2.8.5]
  - tabulate [required: >=0.8.3,<1, installed: 0.8.7]

Though the penv that PlatformIO uses inside has more dependencies

C:\Users\Max\.platformio\penv\Scripts>activate
(penv) C:\Users\Max\.platformio\penv\Scripts>pipdeptree
cryptography==3.2.1
  - cffi [required: >=1.8,!=1.11.3, installed: 1.14.4]
    - pycparser [required: Any, installed: 2.20]
  - six [required: >=1.4.1, installed: 1.15.0]
esp-windows-curses==0.1
  - windows-curses [required: Any, installed: 2.2.0]
future==0.18.2
pipdeptree==1.0.0
  - pip [required: >=6.0.0, installed: 20.2.4]
platformio==5.0.4b1
  - bottle [required: <0.13, installed: 0.12.19]
  - click [required: >=5,<8,!=7.1.1,!=7.1, installed: 7.1.2]
  - colorama [required: Any, installed: 0.4.4]
  - marshmallow [required: >=2, installed: 3.9.1]
  - pyelftools [required: >=0.25,<1, installed: 0.27]
  - pyserial [required: >=3,<4,!=3.3, installed: 3.4]
  - requests [required: >=2.4.0,<3, installed: 2.25.0]
    - certifi [required: >=2017.4.17, installed: 2020.11.8]
    - chardet [required: >=3.0.2,<4, installed: 3.0.4]
    - idna [required: >=2.5,<3, installed: 2.10]
    - urllib3 [required: >=1.21.1,<1.27, installed: 1.26.2]
  - semantic-version [required: >=2.8.1,<3, installed: 2.8.5]
  - tabulate [required: >=0.8.3,<1, installed: 0.8.7]
pykwalify==1.7.0
  - docopt [required: >=0.6.2, installed: 0.6.2]
  - python-dateutil [required: >=2.4.2, installed: 2.8.1]
    - six [required: >=1.5, installed: 1.15.0]
  - PyYAML [required: >=3.11, installed: 5.3.1]
pylint==2.6.0
  - astroid [required: >=2.4.0,<=2.5, installed: 2.4.2]
    - lazy-object-proxy [required: ==1.4.*, installed: 1.4.3]
    - six [required: ~=1.12, installed: 1.15.0]
    - wrapt [required: ~=1.11, installed: 1.12.1]
  - colorama [required: Any, installed: 0.4.4]
  - isort [required: >=4.2.5,<6, installed: 5.6.4]
  - mccabe [required: >=0.6,<0.7, installed: 0.6.1]
  - toml [required: >=0.7.1, installed: 0.10.2]
pyparsing==2.3.1
pyusb==1.1.0
setuptools==49.2.1

And then the contrib-pysite package has even more packages

(penv) C:\Users\Max\.platformio\packages\contrib-pysite>ls
__pycache__                       pyasn1
_cffi_backend.cp38-win_amd64.pyd  pyasn1-0.4.7.dist-info
adodbapi                          pyasn1_modules
attr                              pyasn1_modules-0.2.7.dist-info
attrs-19.3.0.dist-info            pycparser
autobahn                          pycparser-2.19-py3.8.egg-info
autobahn-19.10.1.dist-info        PyHamcrest-1.9.0.dist-info
automat                           pyOpenSSL-19.0.0.dist-info
Automat-0.7.0.dist-info           pypiwin32-223.dist-info
bin                               pythoncom.py
cffi                              pythonwin
cffi-1.13.0.dist-info             pywin32-225.dist-info
constantly                        pywin32.pth
constantly-15.1.0.dist-info       pywin32.version.txt
cryptography                      pywin32_system32
cryptography-2.8.dist-info        service_identity
easy_install.py                   service_identity-18.1.0.dist-info
exampleproj                       setuptools
hamcrest                          setuptools-41.4.0.dist-info
hyperlink                         six-1.12.0.dist-info
hyperlink-19.0.0.dist-info        six.py
idna                              twisted
idna-2.8.dist-info                Twisted-19.7.0.dist-info
ifaddr                            txaio
ifaddr-0.1.6-py3.8.egg-info       txaio-18.8.1.dist-info
incremental                       win32
incremental-17.5.0.dist-info      win32com
isapi                             win32comext
json_rpc-1.12.1.dist-info         zeroconf-0.23.0.dist-info
jsonrpc                           zeroconf.py
OpenSSL                           zope
package.json                      zope.interface-4.6.0-py3.8-nspkg.pth
pkg_resources                     zope.interface-4.6.0-py3.8.egg-info

Hi @maxgerhardt and thanks for the quick reply!
Right now we are packaging git and zlib into the closure ( nixpkgs/chrootenv.nix at f30a8774d9f74e2673b65a4e6633b312cc86cac9 · NixOS/nixpkgs · GitHub ) as NixOS requires explicit dependency definition at build time. open is added as a transient dependency coming from cryptography (via pyopenssl).

As platformio fetches cross-compiling toolchains at runtime we want to make sure that everything still works, even when we completely drop i686 support for platformio.

Does it seem that the urllib3 package needs PyOpenSSL? Otherwise, a package manager will not work.