saltstack/salt-bootstrap

can not install on opensuse leap 15.4 and 15.5 from git master

Opened this issue · 1 comments

Description of Issue/Question

opensuse leap installs from git master fail on 15.4 and 15.5. These appear to be the same issue.

from automated pipelines I can see this started failing between Nov 2nd and Nov 9th 2023. https://gitlab.com/saltstack-formulas/infrastructure/salt-image-builder/-/pipelines

Setup

(Please provide relevant configs (Be sure to remove sensitive info).)

no setup needed

Steps to Reproduce Issue

(Include debug logs if possible, bootstrap-salt.sh -D.)
start up a new container with 15.4 or 15.5 docker container run -it opensuse/leap:15.4 /bin/bash

50f7bc802898:/ # zypper install python310-pip
50f7bc802898:/ # curl -L https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.sh >bootstrap-salt.sh
50f7bc802898:/ # bash bootstrap-salt.sh -XUdfPD -x python3.10 git master

relevant logs
also seen at:

 *  INFO: Installing salt using python3.10
mkdir: cannot create directory '/tmp/git/deps': File exists
 *  INFO: Downloading Salt Dependencies from PyPi
 * DEBUG: Running 'pip3.10 download -d /tmp/git/deps  .'
Processing /tmp/git/salt
  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 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting contextvars
  Downloading contextvars-2.4.tar.gz (9.6 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting MarkupSafe
  Downloading MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25 kB)
Collecting requests>=2.25.1
  Downloading requests-2.31.0-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 KB 1.7 MB/s eta 0:00:00
Collecting pyzmq>=24.0.0
  Downloading pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 12.0 MB/s eta 0:00:00
Collecting PyYAML
  Downloading PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (705 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 705.5/705.5 KB 32.6 MB/s eta 0:00:00
Collecting python-dateutil>=2.8.1
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 17.4 MB/s eta 0:00:00
Collecting looseversion
  Downloading looseversion-1.3.0-py2.py3-none-any.whl (8.2 kB)
Collecting timelib>=0.2.5
  Downloading timelib-0.3.0.tar.gz (308 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 308.8/308.8 KB 23.8 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  WARNING: Missing build requirements in pyproject.toml for timelib>=0.2.5 from https://files.pythonhosted.org/packages/a4/ff/a0982fbbc36a5edd734126a149b8e8f9cb6e4d80f9b01b181056b47ee655/timelib-0.3.0.tar.gz#sha256=d1b22706557186e6058da88ba0f85837401b2ae9de157f59353dc978d825187a (from salt==3007.0+0na.84f434c).
  WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting setproctitle>=1.2.3
  Downloading setproctitle-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30 kB)
Collecting packaging>=21.3
  Downloading packaging-23.2-py3-none-any.whl (53 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.0/53.0 KB 3.8 MB/s eta 0:00:00
Collecting importlib-metadata>=3.3.0
  Downloading importlib_metadata-7.0.0-py3-none-any.whl (23 kB)
Collecting psutil>=5.0.0
  Downloading psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (283 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 283.6/283.6 KB 19.8 MB/s eta 0:00:00
Collecting jmespath
  Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)
Collecting distro>=1.0.1
  Downloading distro-1.8.0-py3-none-any.whl (20 kB)
Collecting rpm-vercmp
  Downloading rpm_vercmp-0.1.2.tar.gz (8.9 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting python-gnupg>=0.4.7
  Downloading python_gnupg-0.5.2-py2.py3-none-any.whl (20 kB)
Collecting cherrypy>=18.6.1
  Downloading CherryPy-18.8.0-py2.py3-none-any.whl (348 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 348.4/348.4 KB 19.6 MB/s eta 0:00:00
Collecting Jinja2
  Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.1/133.1 KB 13.2 MB/s eta 0:00:00
Collecting msgpack>=1.0.0
  Downloading msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (530 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 530.8/530.8 KB 25.5 MB/s eta 0:00:00
Collecting pyopenssl>=20.0.1
  Downloading pyOpenSSL-23.3.0-py3-none-any.whl (58 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.8/58.8 KB 4.0 MB/s eta 0:00:00
Collecting cryptography>=41.0.3
  Downloading cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl (4.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 46.6 MB/s eta 0:00:00
Collecting pycryptodomex>=3.9.8
  Downloading pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 49.6 MB/s eta 0:00:00
Collecting tornado>=6.3.3
  Downloading tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (435 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 435.4/435.4 KB 25.9 MB/s eta 0:00:00
Collecting cheroot>=8.2.1
  Downloading cheroot-10.0.0-py3-none-any.whl (101 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.6/101.6 KB 7.3 MB/s eta 0:00:00
Collecting zc.lockfile
  Downloading zc.lockfile-3.0.post1-py3-none-any.whl (9.8 kB)
Collecting jaraco.collections
  Downloading jaraco.collections-5.0.0-py3-none-any.whl (10 kB)
Collecting more-itertools
  Downloading more_itertools-10.1.0-py3-none-any.whl (55 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.8/55.8 KB 5.1 MB/s eta 0:00:00
Collecting portend>=2.1.1
  Downloading portend-3.2.0-py3-none-any.whl (5.3 kB)
Collecting cffi>=1.12
  Downloading cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (443 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 443.9/443.9 KB 26.8 MB/s eta 0:00:00
Collecting zipp>=0.5
  Downloading zipp-3.17.0-py3-none-any.whl (7.4 kB)
Collecting six>=1.5
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting idna<4,>=2.5
  Downloading idna-3.6-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.6/61.6 KB 5.1 MB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading certifi-2023.11.17-py3-none-any.whl (162 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 KB 12.6 MB/s eta 0:00:00
Collecting urllib3<3,>=1.21.1
  Downloading urllib3-2.1.0-py3-none-any.whl (104 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 104.6/104.6 KB 8.0 MB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 142.1/142.1 KB 11.1 MB/s eta 0:00:00
Collecting immutables>=0.9
  Downloading immutables-0.20-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.9/96.9 KB 7.3 MB/s eta 0:00:00
Collecting pycparser
  Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.7/118.7 KB 7.6 MB/s eta 0:00:00
Collecting jaraco.functools
  Downloading jaraco.functools-4.0.0-py3-none-any.whl (9.8 kB)
Collecting tempora>=1.8
  Downloading tempora-5.5.0-py3-none-any.whl (13 kB)
Collecting jaraco.text
  Downloading jaraco.text-3.12.0-py3-none-any.whl (11 kB)
Collecting setuptools
  Using cached setuptools-69.0.2-py3-none-any.whl (819 kB)
Collecting pytz
  Downloading pytz-2023.3.post1-py2.py3-none-any.whl (502 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 502.5/502.5 KB 28.4 MB/s eta 0:00:00
Collecting inflect
  Downloading inflect-7.0.0-py3-none-any.whl (34 kB)
Collecting jaraco.context>=4.1
  Downloading jaraco.context-4.3.0-py3-none-any.whl (5.3 kB)
Collecting autocommand
  Downloading autocommand-2.2.2-py3-none-any.whl (19 kB)
Collecting pydantic>=1.9.1
  Downloading pydantic-2.5.2-py3-none-any.whl (381 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 381.9/381.9 KB 26.9 MB/s eta 0:00:00
Collecting typing-extensions
  Downloading typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Collecting annotated-types>=0.4.0
  Downloading annotated_types-0.6.0-py3-none-any.whl (12 kB)
Collecting pydantic-core==2.14.5
  Downloading pydantic_core-2.14.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 51.9 MB/s eta 0:00:00
Saved /tmp/git/deps/CherryPy-18.8.0-py2.py3-none-any.whl
Saved /tmp/git/deps/cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl
Saved /tmp/git/deps/distro-1.8.0-py3-none-any.whl
Saved /tmp/git/deps/importlib_metadata-7.0.0-py3-none-any.whl
Saved /tmp/git/deps/msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/packaging-23.2-py3-none-any.whl
Saved /tmp/git/deps/psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/pyOpenSSL-23.3.0-py3-none-any.whl
Saved /tmp/git/deps/python_dateutil-2.8.2-py2.py3-none-any.whl
Saved /tmp/git/deps/python_gnupg-0.5.2-py2.py3-none-any.whl
Saved /tmp/git/deps/pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl
Saved /tmp/git/deps/requests-2.31.0-py3-none-any.whl
Saved /tmp/git/deps/setproctitle-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/timelib-0.3.0.tar.gz
Saved /tmp/git/deps/tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/contextvars-2.4.tar.gz
Saved /tmp/git/deps/Jinja2-3.1.2-py3-none-any.whl
Saved /tmp/git/deps/MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/jmespath-1.0.1-py3-none-any.whl
Saved /tmp/git/deps/looseversion-1.3.0-py2.py3-none-any.whl
Saved /tmp/git/deps/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/rpm_vercmp-0.1.2.tar.gz
Saved /tmp/git/deps/certifi-2023.11.17-py3-none-any.whl
Saved /tmp/git/deps/cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/cheroot-10.0.0-py3-none-any.whl
Saved /tmp/git/deps/idna-3.6-py3-none-any.whl
Saved /tmp/git/deps/immutables-0.20-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/more_itertools-10.1.0-py3-none-any.whl
Saved /tmp/git/deps/portend-3.2.0-py3-none-any.whl
Saved /tmp/git/deps/six-1.16.0-py2.py3-none-any.whl
Saved /tmp/git/deps/urllib3-2.1.0-py3-none-any.whl
Saved /tmp/git/deps/zipp-3.17.0-py3-none-any.whl
Saved /tmp/git/deps/jaraco.collections-5.0.0-py3-none-any.whl
Saved /tmp/git/deps/zc.lockfile-3.0.post1-py3-none-any.whl
Saved /tmp/git/deps/tempora-5.5.0-py3-none-any.whl
Saved /tmp/git/deps/jaraco.functools-4.0.0-py3-none-any.whl
Saved /tmp/git/deps/jaraco.text-3.12.0-py3-none-any.whl
Saved /tmp/git/deps/pycparser-2.21-py2.py3-none-any.whl
Saved /tmp/git/deps/jaraco.context-4.3.0-py3-none-any.whl
Saved /tmp/git/deps/autocommand-2.2.2-py3-none-any.whl
Saved /tmp/git/deps/inflect-7.0.0-py3-none-any.whl
Saved /tmp/git/deps/pytz-2023.3.post1-py2.py3-none-any.whl
Saved /tmp/git/deps/pydantic-2.5.2-py3-none-any.whl
Saved /tmp/git/deps/pydantic_core-2.14.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved /tmp/git/deps/typing_extensions-4.9.0-py3-none-any.whl
Saved /tmp/git/deps/annotated_types-0.6.0-py3-none-any.whl
Saved /tmp/git/deps/setuptools-69.0.2-py3-none-any.whl
Successfully downloaded salt cherrypy cryptography distro importlib-metadata msgpack packaging psutil pycryptodomex pyopenssl python-dateutil python-gnupg pyzmq requests setproctitle timelib tornado contextvars Jinja2 MarkupSafe jmespath looseversion PyYAML rpm-vercmp certifi cffi charset-normalizer cheroot idna immutables more-itertools portend six urllib3 zipp jaraco.collections zc.lockfile tempora jaraco.functools jaraco.text pycparser jaraco.context autocommand inflect pytz pydantic pydantic-core typing-extensions annotated-types setuptools
 *  INFO: Installing Downloaded Salt Dependencies
 * DEBUG: Running 'pip3.10 install --ignore-installed --prefix=/usr /tmp/git/deps/*'
Processing /tmp/git/deps/CherryPy-18.8.0-py2.py3-none-any.whl
Processing /tmp/git/deps/Jinja2-3.1.2-py3-none-any.whl
Processing /tmp/git/deps/MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/annotated_types-0.6.0-py3-none-any.whl
Processing /tmp/git/deps/autocommand-2.2.2-py3-none-any.whl
Processing /tmp/git/deps/certifi-2023.11.17-py3-none-any.whl
Processing /tmp/git/deps/cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/cheroot-10.0.0-py3-none-any.whl
Processing /tmp/git/deps/contextvars-2.4.tar.gz
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Processing /tmp/git/deps/cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl
Processing /tmp/git/deps/distro-1.8.0-py3-none-any.whl
Processing /tmp/git/deps/idna-3.6-py3-none-any.whl
Processing /tmp/git/deps/immutables-0.20-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/importlib_metadata-7.0.0-py3-none-any.whl
Processing /tmp/git/deps/inflect-7.0.0-py3-none-any.whl
Processing /tmp/git/deps/jaraco.collections-5.0.0-py3-none-any.whl
Processing /tmp/git/deps/jaraco.context-4.3.0-py3-none-any.whl
Processing /tmp/git/deps/jaraco.functools-4.0.0-py3-none-any.whl
Processing /tmp/git/deps/jaraco.text-3.12.0-py3-none-any.whl
Processing /tmp/git/deps/jmespath-1.0.1-py3-none-any.whl
Processing /tmp/git/deps/looseversion-1.3.0-py2.py3-none-any.whl
Processing /tmp/git/deps/more_itertools-10.1.0-py3-none-any.whl
Processing /tmp/git/deps/msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/packaging-23.2-py3-none-any.whl
Processing /tmp/git/deps/portend-3.2.0-py3-none-any.whl
Processing /tmp/git/deps/psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/pyOpenSSL-23.3.0-py3-none-any.whl
Processing /tmp/git/deps/pycparser-2.21-py2.py3-none-any.whl
Processing /tmp/git/deps/pycryptodomex-3.19.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/pydantic-2.5.2-py3-none-any.whl
Processing /tmp/git/deps/pydantic_core-2.14.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/python_dateutil-2.8.2-py2.py3-none-any.whl
Processing /tmp/git/deps/python_gnupg-0.5.2-py2.py3-none-any.whl
Processing /tmp/git/deps/pytz-2023.3.post1-py2.py3-none-any.whl
Processing /tmp/git/deps/pyzmq-25.1.2-cp310-cp310-manylinux_2_28_x86_64.whl
Processing /tmp/git/deps/requests-2.31.0-py3-none-any.whl
Processing /tmp/git/deps/rpm_vercmp-0.1.2.tar.gz
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Processing /tmp/git/deps/setproctitle-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/setuptools-69.0.2-py3-none-any.whl
Processing /tmp/git/deps/six-1.16.0-py2.py3-none-any.whl
Processing /tmp/git/deps/tempora-5.5.0-py3-none-any.whl
Processing /tmp/git/deps/timelib-0.3.0.tar.gz
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  WARNING: Missing build requirements in pyproject.toml for file:///tmp/git/deps/timelib-0.3.0.tar.gz.
  WARNING: The project does not specify a build backend, and pip cannot fall back to setuptools without 'wheel'.
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Processing /tmp/git/deps/tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Processing /tmp/git/deps/typing_extensions-4.9.0-py3-none-any.whl
Processing /tmp/git/deps/urllib3-2.1.0-py3-none-any.whl
Processing /tmp/git/deps/zc.lockfile-3.0.post1-py3-none-any.whl
Processing /tmp/git/deps/zipp-3.17.0-py3-none-any.whl
Building wheels for collected packages: contextvars, rpm-vercmp, timelib
  Building wheel for contextvars (setup.py): started
  Building wheel for contextvars (setup.py): finished with status 'done'
  Created wheel for contextvars: filename=contextvars-2.4-py3-none-any.whl size=7665 sha256=e239790c357bfb131ff3b2f030d9851d889b5fede8ec64c2f99c9c40a730dd8c
  Stored in directory: /root/.cache/pip/wheels/16/ce/c9/144a37bdd328848675a0f6917952046916c3b0831725bc36ef
  Building wheel for rpm-vercmp (setup.py): started
  Building wheel for rpm-vercmp (setup.py): finished with status 'done'
  Created wheel for rpm-vercmp: filename=rpm_vercmp-0.1.2-py3-none-any.whl size=9931 sha256=429f75669abf10070167ae00586c9fbaf98bc85b11a8d196a82f45afa63014bc
  Stored in directory: /root/.cache/pip/wheels/f7/33/8d/08a3332d4eb2367b15b6282a6c97f85ad3c13d3c19650955c7
  Building wheel for timelib (pyproject.toml): started
  Building wheel for timelib (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error
  
  × Building wheel for timelib (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [20 lines of output]
      running bdist_wheel
      running build
      running build_ext
      building 'timelib' extension
      creating build
      creating build/temp.linux-x86_64-cpython-310
      creating build/temp.linux-x86_64-cpython-310/ext-date-lib
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/astro.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/astro.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/dow.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/dow.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/parse_date.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/parse_date.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/parse_tz.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/parse_tz.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/timelib.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/timelib.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/tm2unixtime.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/tm2unixtime.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c ext-date-lib/unixtime2tm.c -o build/temp.linux-x86_64-cpython-310/ext-date-lib/unixtime2tm.o
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DOPENSSL_LOAD_CONF -fwrapv -fno-semantic-interposition -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -IVendor/ -fPIC -DHAVE_STRING_H=1 -I. -Iext-date-lib -I. -Iext-date-lib -I/usr/include/python3.10 -c timelib.c -o build/temp.linux-x86_64-cpython-310/timelib.o
      timelib.c:51:10: fatal error: Python.h: No such file or directory
       #include "Python.h"
                ^~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for timelib
Successfully built contextvars rpm-vercmp
Failed to build timelib
ERROR: Could not build wheels for timelib, which is required to install pyproject.toml-based projects
 * ERROR: Failed to run install_opensuse_15_git()!!!
 * DEBUG: Cleaning up the Salt Temporary Git Repository
 * DEBUG: Removing the logging pipe /tmp/bootstrap-salt.logpipe
 * DEBUG: Removing the temporary apt error file /tmp/apt_error.3dEZZv
 * DEBUG: Killing logging pipe tee's with pid(s): 1166

Versions and Systems

(salt --versions-report, bootstrap-salt.sh -v, system type and version,
cloud/VM provider as appropriate.)

50f7bc802898:/ #  bash bootstrap-salt.sh -v
bootstrap-salt.sh -- Version 2023.11.

Adding python's devel pkg to the install dependencies would work to re-enable bootstrapping leap 15, as shown here:
https://gitlab.com/saltstack-formulas/infrastructure/salt-image-builder/-/merge_requests/184

I haven't determined to origin of the issue building the timelib wheel. Therefore i'm unsure whether adding another dependency is an acceptable workaround.

Though, there already are a few other distributions for which python-devel pkgs and alikes are used, mostly rhel-based-distributions. Such as:

__PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc"

If the devel pkg would be added, i guess this function would need to be extended:

install_opensuse_git_deps() {