relenv 0.18.0__py3-none-any.whl → 0.18.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. relenv/__init__.py +1 -1
  2. relenv/__main__.py +1 -1
  3. relenv/_scripts/install_vc_build.ps1 +150 -0
  4. relenv/_toolchain/aarch64/aarch64-linux-gnu-ct-ng.config +798 -0
  5. relenv/_toolchain/aarch64/x86_64-linux-gnu-ct-ng.config +800 -0
  6. relenv/_toolchain/x86_64/aarch64-linux-gnu-ct-ng.config +799 -0
  7. relenv/_toolchain/x86_64/x86_64-linux-gnu-ct-ng.config +801 -0
  8. relenv/build/__init__.py +8 -1
  9. relenv/build/common.py +20 -5
  10. relenv/build/darwin.py +9 -10
  11. relenv/build/linux.py +69 -82
  12. relenv/build/windows.py +11 -9
  13. relenv/buildenv.py +10 -10
  14. relenv/check.py +1 -1
  15. relenv/common.py +11 -2
  16. relenv/create.py +1 -1
  17. relenv/fetch.py +1 -1
  18. relenv/relocate.py +1 -1
  19. relenv/runtime.py +23 -2
  20. relenv/toolchain.py +1 -1
  21. {relenv-0.18.0.dist-info → relenv-0.18.2.dist-info}/METADATA +3 -2
  22. relenv-0.18.2.dist-info/RECORD +38 -0
  23. {relenv-0.18.0.dist-info → relenv-0.18.2.dist-info}/WHEEL +1 -1
  24. tests/conftest.py +1 -1
  25. tests/test_build.py +1 -2
  26. tests/test_common.py +1 -1
  27. tests/test_create.py +1 -1
  28. tests/test_downloads.py +1 -1
  29. tests/test_fips_photon.py +1 -1
  30. tests/test_relocate.py +1 -1
  31. tests/test_runtime.py +1 -1
  32. tests/test_toolchain.py +1 -1
  33. tests/test_verify_build.py +91 -19
  34. relenv-0.18.0.dist-info/RECORD +0 -33
  35. {relenv-0.18.0.dist-info → relenv-0.18.2.dist-info}/entry_points.txt +0 -0
  36. {relenv-0.18.0.dist-info → relenv-0.18.2.dist-info/licenses}/LICENSE.md +0 -0
  37. {relenv-0.18.0.dist-info → relenv-0.18.2.dist-info/licenses}/NOTICE +0 -0
  38. {relenv-0.18.0.dist-info → relenv-0.18.2.dist-info}/top_level.txt +0 -0
relenv/buildenv.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2023-2024 VMware, Inc.
1
+ # Copyright 2023-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  """
4
4
  Helper for building libraries to install into a relenv environment.
@@ -51,20 +51,20 @@ def buildenv(relenv_path=None):
51
51
  "TOOLCHAIN_PATH": f"{toolchain}",
52
52
  "TRIPLET": f"{triplet}",
53
53
  "RELENV_PATH": f"{relenv_path}",
54
- "CC": f"{toolchain}/bin/{triplet}-gcc -no-pie",
55
- "CXX": f"{toolchain}/bin/{triplet}-g++ -no-pie",
56
- "CFLAGS": (
57
- # f"-L{relenv_path}/lib -L{toolchain}/{triplet}/sysroot/lib "
54
+ "CC": f"{toolchain}/bin/{triplet}-gcc",
55
+ "CXX": f"{toolchain}/bin/{triplet}-g++",
56
+ "CFLAGS": f"-I{relenv_path}/include -I{toolchain}/sysroot/usr/include",
57
+ "CXXFLAGS": (
58
58
  f"-I{relenv_path}/include "
59
- f"-I{toolchain}/sysroot/usr/include"
59
+ f"-I{toolchain}/{triplet}/sysroot/usr/include "
60
+ f"-L{relenv_path}/lib -L{toolchain}/{triplet}/sysroot/lib "
61
+ f"-Wl,-rpath,{relenv_path}/lib"
60
62
  ),
61
63
  "CPPFLAGS": (
62
- # f"-L{relenv_path}/lib -L{toolchain}/{triplet}/sysroot/lib "
63
- f"-I{relenv_path}/include -I{toolchain}/{triplet}/sysroot/usr/include"
64
+ f"-I{relenv_path}/include " f"-I{toolchain}/{triplet}/sysroot/usr/include"
64
65
  ),
65
66
  "CMAKE_CFLAGS": (
66
- # f"-L{relenv_path}/lib -L{toolchain}/{triplet}/sysroot/lib "
67
- f"-I{relenv_path}/include -I{toolchain}/{triplet}/sysroot/usr/include"
67
+ f"-I{relenv_path}/include " f"-I{toolchain}/{triplet}/sysroot/usr/include"
68
68
  ),
69
69
  "LDFLAGS": (
70
70
  f"-L{relenv_path}/lib -L{toolchain}/{triplet}/sysroot/lib "
relenv/check.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2023-2024 VMware, Inc.
1
+ # Copyright 2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  """
4
4
  Check the integrety of a relenv environment.
relenv/common.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2023-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  Common classes and values used around relenv.
@@ -18,7 +18,7 @@ import threading
18
18
  import time
19
19
 
20
20
  # relenv package version
21
- __version__ = "0.18.0"
21
+ __version__ = "0.18.2"
22
22
 
23
23
  MODULE_DIR = pathlib.Path(__file__).resolve().parent
24
24
 
@@ -370,6 +370,7 @@ def fetch_url(url, fp, backoff=3, timeout=30):
370
370
  import urllib.error
371
371
  import urllib.request
372
372
 
373
+ last = time.time()
373
374
  if backoff < 1:
374
375
  backoff = 1
375
376
  n = 0
@@ -384,16 +385,24 @@ def fetch_url(url, fp, backoff=3, timeout=30):
384
385
  ) as exc:
385
386
  if n >= backoff:
386
387
  raise RelenvException(f"Error fetching url {url} {exc}")
388
+ log.debug("Unable to connect %s", url)
387
389
  time.sleep(n * 10)
390
+ log.info("url opened %s", url)
388
391
  try:
392
+ total = 0
389
393
  size = 1024 * 300
390
394
  block = fin.read(size)
391
395
  while block:
396
+ total += size
397
+ if time.time() - last > 10:
398
+ log.info("%s > %d", url, total)
399
+ last = time.time()
392
400
  fp.write(block)
393
401
  block = fin.read(10240)
394
402
  finally:
395
403
  fin.close()
396
404
  # fp.close()
405
+ log.info("Download complete %s", url)
397
406
 
398
407
 
399
408
  def download_url(url, dest, verbose=True, backoff=3, timeout=60):
relenv/create.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  The ``relenv create`` command.
relenv/fetch.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  The ``relenv fetch`` command.
relenv/relocate.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  A script to ensure the proper rpaths are in place for the relenv environment.
relenv/runtime.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  This code is run when initializing the python interperter in a Relenv environment.
@@ -70,6 +70,17 @@ def relocate():
70
70
  return relocate.relocate
71
71
 
72
72
 
73
+ def buildenv():
74
+ """
75
+ Late import relenv buildenv.
76
+ """
77
+ if not hasattr(buildenv, "builenv"):
78
+ buildenv.buildenv = path_import(
79
+ "relenv.buildenv", str(pathlib.Path(__file__).parent / "buildenv.py")
80
+ )
81
+ return buildenv.buildenv
82
+
83
+
73
84
  def get_major_version():
74
85
  """
75
86
  Current python major version.
@@ -137,7 +148,9 @@ def _build_shebang(func, *args, **kwargs):
137
148
  return func(self, *args, **kwargs)
138
149
  debug(f"Relenv - _build_shebang {scripts} {interpreter}")
139
150
  if sys.platform == "win32":
140
- return str(pathlib.Path("#!<launcher_dir>") / interpreter).encode()
151
+ return (
152
+ str(pathlib.Path("#!<launcher_dir>") / interpreter).encode() + b"\r\n"
153
+ )
141
154
  return common().format_shebang("/" / interpreter).encode()
142
155
 
143
156
  return wrapped
@@ -1022,3 +1035,11 @@ def bootstrap():
1022
1035
  setup_crossroot()
1023
1036
  install_cargo_config()
1024
1037
  sys.meta_path = [importer] + sys.meta_path
1038
+ # XXX This causes our m2crypto test to break
1039
+ # if "RELENV_BUILDENV" in os.environ:
1040
+ # env = buildenv().buildenv()
1041
+ # for key in env:
1042
+ # if key in os.environ:
1043
+ # os.environ[key] = f"{env[key]} {os.environ[key]}"
1044
+ # else:
1045
+ # os.environ[key] = env[key]
relenv/toolchain.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  The ``relenv toolchain`` command.
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: relenv
3
- Version: 0.18.0
3
+ Version: 0.18.2
4
4
  Project-URL: Source Code, https://github.com/saltstack/relative-environment-for-python
5
5
  Project-URL: Documentation, https://relenv.readthedocs.io/en/latest/
6
6
  Project-URL: Changelog, https://relenv.readthedocs.io/en/latest/changelog.html
@@ -8,6 +8,7 @@ Description-Content-Type: text/markdown
8
8
  License-File: LICENSE.md
9
9
  License-File: NOTICE
10
10
  Requires-Dist: ppbt; sys_platform == "linux"
11
+ Dynamic: license-file
11
12
 
12
13
  Relenv
13
14
  ======
@@ -0,0 +1,38 @@
1
+ relenv/__init__.py,sha256=NyZyghiBF5up_Uq6iJhmBr5HUKzfDtP-yZlU1OS6lQM,101
2
+ relenv/__main__.py,sha256=otLGprkP5mrzRn-KI7hx3p61enpKdIxJq37iPjHgURY,1330
3
+ relenv/buildenv.py,sha256=GcctZxbH1lfShN8bsbqG-xtrnI4rjWv2PUktHLSYlRo,2946
4
+ relenv/check.py,sha256=AIGxq_2ZBVVIBO8QiJZHknGILyjmxLgN00TTHlFjNsY,951
5
+ relenv/common.py,sha256=ViVbtJCKRgTpnx7pVSic-NebAc_WOXRb_-3kUPJBFrs,15216
6
+ relenv/create.py,sha256=DFKXtANcM4_axUCHF6Fg1Bhr3xWreLt9jxNYLXVZEsM,3930
7
+ relenv/fetch.py,sha256=1qQLQuPBpDqvRO7dkjnmeLfo-I0NSA8vFkcMd-Nqbrk,2388
8
+ relenv/relocate.py,sha256=P5l4s5H4bR8cYm1PEtwp9yJyVfZ5km44jLe0LvL8CL0,11797
9
+ relenv/runtime.py,sha256=65WYEAGnpH5hZgujaJSaJExhn-VRTdRO9-Y6Qo8X-Do,31163
10
+ relenv/toolchain.py,sha256=H--mpJnlLR0mWP5djgYss7qDOTdSub7e7rQxa4cPBBE,5858
11
+ relenv/_scripts/install_vc_build.ps1,sha256=LwzqinKppwht2tacu2jl_gY6gcGWaSq-5Lr1aKduzhs,6423
12
+ relenv/_toolchain/aarch64/aarch64-linux-gnu-ct-ng.config,sha256=2s_7fX6A3p4380qLiOS78kgijN7GdRHfiW0FArnhjEE,20665
13
+ relenv/_toolchain/aarch64/x86_64-linux-gnu-ct-ng.config,sha256=-CFXq0SLFCRkKhhMEWraWsGbEv-hBpZl7-Dz0lUMyfs,20774
14
+ relenv/_toolchain/x86_64/aarch64-linux-gnu-ct-ng.config,sha256=NnkGKF2oIfwOFFFIAQzVgpa-J1gfVM4eOm5VlkLnXqA,20672
15
+ relenv/_toolchain/x86_64/x86_64-linux-gnu-ct-ng.config,sha256=pCdwXWcd0wEV-dfAIccN_tkpJshRjSyx_RByfcdakF4,20791
16
+ relenv/build/__init__.py,sha256=Mk5Cn1W7C7ZGGbNxCCcQNMk4AHNvMByPSZ8akpnq9YI,5373
17
+ relenv/build/common.py,sha256=1pULuR3DPifB0H3wKGCofwGgDWuLeSSsea_8buWnAYI,49027
18
+ relenv/build/darwin.py,sha256=57riuVU12oydmVp5Mi3Tys4cqai55uHF0vHtdKxHXWc,3920
19
+ relenv/build/linux.py,sha256=TCI3NH_Yjzxizb8529qlO7pCxVleptRYcGtMzKUx7-0,19193
20
+ relenv/build/windows.py,sha256=yYm-8jziiUMJb6SVKGQZpHtP6wQmDK06BYC7HWgwzwA,6169
21
+ relenv-0.18.2.dist-info/licenses/LICENSE.md,sha256=T0SRk3vJM1YcAJjDz9vsX9gsCRatAVSBS7LeU0tklRM,9919
22
+ relenv-0.18.2.dist-info/licenses/NOTICE,sha256=Ns0AybPHBsgJKJJfjE6YnGgWEQQ9F7lQ6QNlYLlQT3E,548
23
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ tests/conftest.py,sha256=VfuB1T7Tjoy2mhKpwKUJNIoq9RX69sRvRXIxw_R09qU,2040
25
+ tests/test_build.py,sha256=vuUxCTGQa1FcoeS3ls-7e9v2ry9sgWJHzKWMYKKrwNo,1407
26
+ tests/test_common.py,sha256=mCKBQMQYZqoq47T7tk9gRxfK64Be_OfXBa_t_RKTZ4U,6590
27
+ tests/test_create.py,sha256=gnwNukmYJR02CunQBH6JJ3ClUYgjzBWlOm0SJ_rtJkI,1584
28
+ tests/test_downloads.py,sha256=zdULspcHcepOVkEQKOMr0pw02t9GRiBCcIP72So0EYc,3302
29
+ tests/test_fips_photon.py,sha256=pR6MxzdT1vyaC-nN609fy7Nl68eyqOo46BUdluOXKjI,1248
30
+ tests/test_relocate.py,sha256=_3Eb22qhzWvMnLIgPCqO-t_WZ-hklSMfy8GBTrdjCf0,8854
31
+ tests/test_runtime.py,sha256=n_gTiQqAgO_Vqk6Xf_2Hi3gIkBn_lhDqoovOiQ5fxG8,626
32
+ tests/test_toolchain.py,sha256=02ZxSj72fMTINVl-PHhBkS6eLGWKvwO3nweHYEt4SMQ,4379
33
+ tests/test_verify_build.py,sha256=b6aGdPUK-wHMRL1A5NDnJ2v5GjiletfFCe1oFPll-LU,41182
34
+ relenv-0.18.2.dist-info/METADATA,sha256=TvSF2zY2FqJSI7_CbjE6rErKcY07HkL2kMHwV98W-QY,1337
35
+ relenv-0.18.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
36
+ relenv-0.18.2.dist-info/entry_points.txt,sha256=dO66nWPPWl8ALWWnZFlHKAo6mfPFuQid7purYWL2ddc,48
37
+ relenv-0.18.2.dist-info/top_level.txt,sha256=P4Ro6JLZE53ZdsQ76o2OzBcpb0MaVJmbfr0HAn9WF8M,13
38
+ relenv-0.18.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
tests/conftest.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2023-2024 VMware, Inc.
1
+ # Copyright 2023-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  #
4
4
  import logging
tests/test_build.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  import hashlib
4
4
 
@@ -33,7 +33,6 @@ def test_builder_defaults_linux():
33
33
  assert builder.toolchain == DATA_DIR / "toolchain" / "x86_64-linux-gnu"
34
34
  assert callable(builder.build_default)
35
35
  assert callable(builder.populate_env)
36
- assert builder.force_download is False
37
36
  assert builder.recipies == {}
38
37
 
39
38
 
tests/test_common.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  import os
4
4
  import pathlib
tests/test_create.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  #
4
4
  import os
tests/test_downloads.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  import pathlib
4
4
  import subprocess
tests/test_fips_photon.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2023-2024 VMware, Inc.
1
+ # Copyright 2023-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  #
4
4
  import os
tests/test_relocate.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  import pathlib
4
4
  import shutil
tests/test_runtime.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2023-2024 VMware, Inc.
1
+ # Copyright 2023-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  #
4
4
  import importlib
tests/test_toolchain.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2022-2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  #
4
4
  from unittest.mock import call, patch
@@ -1,3 +1,4 @@
1
+ # Copyright 2025 Broadcom.
1
2
  # Copyright 2022-2024 VMware, Inc.
2
3
  # SPDX-License-Identifier: Apache-2
3
4
  """
@@ -5,6 +6,7 @@ Verify relenv builds.
5
6
  """
6
7
  import os
7
8
  import pathlib
9
+ import platform
8
10
  import shutil
9
11
  import subprocess
10
12
  import sys
@@ -105,6 +107,11 @@ def test_pip_install_salt_git(pipexec, build, build_dir, pyexec, build_version):
105
107
  if sys.platform == "darwin" and "3.13" in build_version:
106
108
  pytest.xfail("Salt does not work with 3.13 on macos yet")
107
109
 
110
+ # if sys.platform == "linux":
111
+ # subprocess.run(
112
+ # [pipexec, "--upgrade", "install", "setuptools>=72.2.0"], check=True
113
+ # )
114
+
108
115
  env = os.environ.copy()
109
116
  env["RELENV_BUILDENV"] = "yes"
110
117
  if sys.platform == "linux" and shutil.which("git"):
@@ -331,36 +338,67 @@ def test_pip_install_salt_w_package_requirements(
331
338
  # assert script.exists()
332
339
 
333
340
 
334
- @pytest.mark.parametrize("pyzmq_version", ["23.2.0", "25.1.2", "26.2.0"])
335
- def test_pip_install_pyzmq(pipexec, pyzmq_version, build_version, arch):
341
+ @pytest.mark.parametrize(
342
+ "pyzmq_version",
343
+ [
344
+ "23.2.0",
345
+ "25.1.2",
346
+ "26.2.0",
347
+ "26.4.0",
348
+ ],
349
+ )
350
+ def test_pip_install_pyzmq(pipexec, pyzmq_version, build_version, arch, build):
336
351
 
337
352
  if pyzmq_version == "23.2.0" and "3.12" in build_version:
338
353
  pytest.xfail(f"{pyzmq_version} does not install on 3.12")
339
354
 
340
- if pyzmq_version == "23.2.0" and sys.platform == "darwin" and arch == "arm64":
355
+ if pyzmq_version == "23.2.0" and "3.13" in build_version:
356
+ pytest.xfail(f"{pyzmq_version} does not install on 3.13")
357
+
358
+ if pyzmq_version == "23.2.0" and sys.platform == "darwin":
341
359
  pytest.xfail("pyzmq 23.2.0 fails on macos arm64")
342
360
 
343
- if sys.platform == "win32" and pyzmq_version == "25.1.2":
361
+ if pyzmq_version == "23.2.0" and sys.platform == "win32":
362
+ pytest.xfail("vcredist not found as of 9/9/24")
363
+
364
+ if pyzmq_version == "25.1.2" and "3.13" in build_version:
365
+ pytest.xfail(f"{pyzmq_version} does not install on 3.13")
366
+
367
+ if pyzmq_version == "25.1.2" and sys.platform == "win32":
344
368
  pytest.xfail("pyzmq 25.1.2 fails on windows")
345
369
 
346
- if sys.platform == "win32" and pyzmq_version == "23.2.0":
370
+ if pyzmq_version == "26.2.0" and sys.platform == "win32":
347
371
  pytest.xfail("vcredist not found as of 9/9/24")
348
372
 
349
- if sys.platform == "win32" and pyzmq_version == "26.2.0":
350
- pytest.xfail("vcredist not found as of 9/9/24")
373
+ if pyzmq_version == "26.4.0" and sys.platform == "win32":
374
+ pytest.xfail("Needs troubleshooting 4/12/25")
351
375
 
352
- if pyzmq_version == "23.2.0" and "3.13" in build_version:
353
- pytest.xfail(f"{pyzmq_version} does not install on 3.13")
376
+ env = os.environ.copy()
354
377
 
355
- if pyzmq_version == "25.1.2" and "3.13" in build_version:
356
- pytest.xfail(f"{pyzmq_version} does not install on 3.13")
378
+ p = subprocess.run(
379
+ [
380
+ str(pipexec),
381
+ "install",
382
+ "--upgrade",
383
+ "pip",
384
+ "setuptools",
385
+ ],
386
+ env=env,
387
+ )
388
+ if (
389
+ pyzmq_version == "26.2.0"
390
+ and sys.platform == "darwin"
391
+ and platform.processor() == "arm"
392
+ ):
393
+ pytest.xfail(f"{pyzmq_version} does not install on m1 mac")
394
+ if pyzmq_version == "26.2.0" and sys.platform == "darwin":
395
+ env[
396
+ "CFLAGS"
397
+ ] = f"{env.get('CFLAGS', '')} -DCMAKE_OSX_ARCHITECTURES='arm64' -DZMQ_HAVE_CURVE=0"
357
398
 
358
- env = os.environ.copy()
399
+ env["ZMQ_PREFIX"] = "bundled"
359
400
  env["RELENV_BUILDENV"] = "yes"
360
401
  env["USE_STATIC_REQUIREMENTS"] = "1"
361
- env[
362
- "CFLAGS"
363
- ] = f"{env.get('CFLAGS', '')} -DCMAKE_OSX_ARCHITECTURES='arm64' -DZMQ_HAVE_CURVE=0"
364
402
  p = subprocess.run(
365
403
  [
366
404
  str(pipexec),
@@ -375,6 +413,21 @@ def test_pip_install_pyzmq(pipexec, pyzmq_version, build_version, arch):
375
413
  )
376
414
  assert p.returncode == 0, "Failed to pip install package requirements"
377
415
 
416
+ if shutil.which("docker"):
417
+ subprocess.run(
418
+ [
419
+ "docker",
420
+ "run",
421
+ "-v",
422
+ f"{build}:/test",
423
+ "amazonlinux:2",
424
+ "/test/bin/python3",
425
+ "-c",
426
+ "import zmq",
427
+ ],
428
+ check=True,
429
+ )
430
+
378
431
 
379
432
  def test_pip_install_cryptography(pipexec):
380
433
  packages = [
@@ -488,6 +541,7 @@ def test_nox_virtualenvs(pipexec, build, tmp_path):
488
541
 
489
542
  @pytest.mark.skip_unless_on_linux
490
543
  def test_pip_install_m2crypto_system_ssl(pipexec, pyexec):
544
+ pytest.xfail("Failure needs troubleshooting")
491
545
  env = os.environ.copy()
492
546
  env["RELENV_DEBUG"] = "yes"
493
547
  env["LDFLAGS"] = "-L/usr/lib"
@@ -523,18 +577,35 @@ def test_pip_install_m2crypto_system_ssl(pipexec, pyexec):
523
577
 
524
578
 
525
579
  @pytest.mark.skip_unless_on_linux
526
- def test_pip_install_m2crypto_relenv_ssl(pipexec, pyexec, build):
580
+ @pytest.mark.parametrize(
581
+ "m2crypto_version",
582
+ [
583
+ "0.38.0",
584
+ "0.44.0",
585
+ ],
586
+ )
587
+ def test_pip_install_m2crypto_relenv_ssl(
588
+ m2crypto_version, pipexec, pyexec, build, build_version, minor_version
589
+ ):
590
+ if m2crypto_version == "0.38.0" and minor_version in ["3.12", "3.13"]:
591
+ pytest.xfail("Fails due to no distutils")
527
592
  env = os.environ.copy()
528
593
  env["RELENV_BUILDENV"] = "yes"
529
594
  env["RELENV_DEBUG"] = "yes"
530
595
  env["LDFLAGS"] = f"-L{build}lib"
531
- env["CFLAGS"] = f"-I{build}/include"
532
- env["SWIG_FEATURES"] = f"-I{build}/include"
596
+ env["CFLAGS"] = f"-I{build}/include -I{build}/include/python{minor_version}"
597
+ env["SWIG_FEATURES"] = f"-I{build}/include -I{build}/include/python{minor_version}"
533
598
  p = subprocess.run(
534
599
  ["swig", "-version"],
535
600
  )
536
601
  p = subprocess.run(
537
- [str(pipexec), "install", "m2crypto", "--no-cache-dir", "-v"],
602
+ [
603
+ str(pipexec),
604
+ "install",
605
+ f"m2crypto=={m2crypto_version}",
606
+ "--no-cache-dir",
607
+ "-v",
608
+ ],
538
609
  env=env,
539
610
  stderr=subprocess.PIPE,
540
611
  )
@@ -1342,6 +1413,7 @@ def test_install_mysqlclient(pipexec, build, minor_version):
1342
1413
 
1343
1414
  @pytest.mark.skip_unless_on_linux
1344
1415
  def test_install_m2crypto(pipexec, build, minor_version):
1416
+ pytest.xfail("Failure needs troubleshooting")
1345
1417
  version = "0.42.0"
1346
1418
  extras = build / "extras"
1347
1419
  p = subprocess.run(
@@ -1,33 +0,0 @@
1
- relenv/__init__.py,sha256=ygb7oLHbR0nrXNZALc50YsVoLE2D-rIh0dyUCMR7jP4,109
2
- relenv/__main__.py,sha256=EGXGdMXmWtwxqBDocs2FN9HqjxfGlnAK95J3VRLSqYw,1333
3
- relenv/buildenv.py,sha256=iyWpP0C1tU-pdvlxP6hub-JeDhoePrK_cfqOyZdzeRE,2976
4
- relenv/check.py,sha256=iYtscg9LV_WPy1b_m8TulljFXoaWhT8fLH-vTFnZJ0w,959
5
- relenv/common.py,sha256=TOHEKG1C7-QbOC5Qp3Rfhp7arbyca1IkvGk5tdZn-ZI,14901
6
- relenv/create.py,sha256=41qHFodgJ4UV668DFg5vKC45YGIKuIX7rZ-hbir7Nuo,3933
7
- relenv/fetch.py,sha256=2bA1sNJRaCrtSwy7Y9dzJPfoj6mzYr3kJFjq2MEuJbo,2391
8
- relenv/relocate.py,sha256=maOQ4mgpkykdZK5ZdRQeMDfmJ1edQyphnhJjfILZaWI,11800
9
- relenv/runtime.py,sha256=faeLG3RlJM-cPiIlm8wDKRV85gUIghlwzXxSPsTtkUE,30536
10
- relenv/toolchain.py,sha256=ck4dT1DD-Ge2hnnkP4vHnoQsaeN9uvL6oJ3r8NDLgmw,5861
11
- relenv/build/__init__.py,sha256=ecP-61QYgb6EEIiVzIvhKNDZVAO7jvCsVCGnlbR06sc,5160
12
- relenv/build/common.py,sha256=dt-1k1syXZH2pmupq4s3GuTij3ajRZmCURhEXvOkdRw,48800
13
- relenv/build/darwin.py,sha256=X-GdQE4qtoPTpUAkZ4q6aroC63NJSRs8qgFZJi806aA,4010
14
- relenv/build/linux.py,sha256=Pgiu6GJqF2RJMR45LB6cBlHDV3jrJQ3Tk7OLQlwdqyA,20748
15
- relenv/build/windows.py,sha256=R-Otjl72XkJIwjJUKVOD9ghIhnayqCWkCdr38o1AqHw,6154
16
- tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- tests/conftest.py,sha256=nZjSkyim5RQJ7_HZ--qKzfh93pVzz-5Ep0GXKj-ba2w,2043
18
- tests/test_build.py,sha256=JiJIr3ny5353t8eGQR-_pcoSFrq9p-O8HeAgyeOfVg0,1453
19
- tests/test_common.py,sha256=w820LMMl2-5pd3FqNajTINsqggs8iL3aS308ycp6VhQ,6593
20
- tests/test_create.py,sha256=d4sri9iCGEC6RZDZslV2svsZ2h3iZeAOWDetkgSWV-I,1587
21
- tests/test_downloads.py,sha256=5dqlfrheIkS-J4EBvo1FO-8HjakcJn_1oqNVfrEpobs,3305
22
- tests/test_fips_photon.py,sha256=AP0pjSH3id_yg0pSAUfeiPIMeC6rzKTHN_sh0p5LEhg,1251
23
- tests/test_relocate.py,sha256=BlCJFYC_B_XqtRKOhFIdfm10wkXWVDw82-ZXBm5gx3I,8857
24
- tests/test_runtime.py,sha256=T_OQHUPAt5eIizZiF4ZyGpwI1NvFauBvga8aklnuO88,629
25
- tests/test_toolchain.py,sha256=xb5i-swlRVE9KVevYnAMmD9ZPm7EM6OFt5FmSYZrlMU,4382
26
- tests/test_verify_build.py,sha256=7PKeWGcyhny7OGEMMM82jeEYRD0d1qBCgKiV-5Fj9DM,39430
27
- relenv-0.18.0.dist-info/LICENSE.md,sha256=T0SRk3vJM1YcAJjDz9vsX9gsCRatAVSBS7LeU0tklRM,9919
28
- relenv-0.18.0.dist-info/METADATA,sha256=iiR4fWh4suDb-OM-kp1BeihcwvxaDkBJaIpBMuYBVzs,1315
29
- relenv-0.18.0.dist-info/NOTICE,sha256=Ns0AybPHBsgJKJJfjE6YnGgWEQQ9F7lQ6QNlYLlQT3E,548
30
- relenv-0.18.0.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
31
- relenv-0.18.0.dist-info/entry_points.txt,sha256=dO66nWPPWl8ALWWnZFlHKAo6mfPFuQid7purYWL2ddc,48
32
- relenv-0.18.0.dist-info/top_level.txt,sha256=P4Ro6JLZE53ZdsQ76o2OzBcpb0MaVJmbfr0HAn9WF8M,13
33
- relenv-0.18.0.dist-info/RECORD,,