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/build/__init__.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 build`` command.
@@ -86,6 +86,12 @@ def setup_parser(subparsers):
86
86
  action="store_true",
87
87
  help="Force downloading source tarballs even if they exist",
88
88
  )
89
+ build_subparser.add_argument(
90
+ "--download-only",
91
+ default=False,
92
+ action="store_true",
93
+ help="Stop after downloading source tarballs",
94
+ )
89
95
  build_subparser.add_argument(
90
96
  "--step",
91
97
  dest="steps",
@@ -179,6 +185,7 @@ def main(args):
179
185
  clean=args.clean,
180
186
  cleanup=not args.no_cleanup,
181
187
  force_download=args.force_download,
188
+ download_only=args.download_only,
182
189
  show_ui=show_ui,
183
190
  log_level=args.log_level.upper(),
184
191
  )
relenv/build/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
  """
4
4
  Build process common methods.
@@ -801,7 +801,6 @@ class Builder:
801
801
  recipies=None,
802
802
  build_default=build_default,
803
803
  populate_env=populate_env,
804
- force_download=False,
805
804
  arch="x86_64",
806
805
  version="",
807
806
  ):
@@ -824,7 +823,6 @@ class Builder:
824
823
 
825
824
  self.build_default = build_default
826
825
  self.populate_env = populate_env
827
- self.force_download = force_download
828
826
  self.toolchains = get_toolchain(root=self.dirs.root)
829
827
  self.set_arch(self.arch)
830
828
 
@@ -842,7 +840,6 @@ class Builder:
842
840
  recipies,
843
841
  self.build_default,
844
842
  self.populate_env,
845
- self.force_download,
846
843
  self.arch,
847
844
  version,
848
845
  )
@@ -1207,6 +1204,7 @@ class Builder:
1207
1204
  clean=True,
1208
1205
  cleanup=True,
1209
1206
  force_download=False,
1207
+ download_only=False,
1210
1208
  show_ui=False,
1211
1209
  log_level="WARNING",
1212
1210
  ):
@@ -1267,6 +1265,8 @@ class Builder:
1267
1265
  # Start a process for each build passing it an event used to notify each
1268
1266
  # process if it's dependencies have finished.
1269
1267
  self.download_files(steps, force_download=force_download, show_ui=show_ui)
1268
+ if download_only:
1269
+ return
1270
1270
  self.build(steps, cleanup, show_ui=show_ui, log_level=log_level)
1271
1271
 
1272
1272
  def check_versions(self):
@@ -1407,7 +1407,13 @@ def install_runtime(sitepackages):
1407
1407
  relenv = sitepackages / "relenv"
1408
1408
  os.makedirs(relenv, exist_ok=True)
1409
1409
 
1410
- for name in ["runtime.py", "relocate.py", "common.py", "__init__.py"]:
1410
+ for name in [
1411
+ "runtime.py",
1412
+ "relocate.py",
1413
+ "common.py",
1414
+ "buildenv.py",
1415
+ "__init__.py",
1416
+ ]:
1411
1417
  src = MODULE_DIR / name
1412
1418
  dest = relenv / name
1413
1419
  with io.open(src, "r") as rfp:
@@ -1495,6 +1501,15 @@ def finalize(env, dirs, logfp):
1495
1501
  format_shebang("../../../bin/python3"),
1496
1502
  )
1497
1503
 
1504
+ shutil.copy(
1505
+ pathlib.Path(dirs.toolchain)
1506
+ / env["RELENV_HOST"]
1507
+ / "sysroot"
1508
+ / "lib"
1509
+ / "libstdc++.so.6",
1510
+ libdir,
1511
+ )
1512
+
1498
1513
  # Moved in python 3.13 or removed?
1499
1514
  if (pymodules / "cgi.py").exists():
1500
1515
  patch_shebang(
relenv/build/darwin.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  The darwin build process.
@@ -72,23 +72,22 @@ def build_python(env, dirs, logfp):
72
72
  runcmd(["make", "install"], env=env, stderr=logfp, stdout=logfp)
73
73
 
74
74
 
75
- build = builds.add("darwin", populate_env=populate_env, version="3.10.15")
75
+ build = builds.add("darwin", populate_env=populate_env, version="3.10.17")
76
76
 
77
77
  build.add(
78
78
  "openssl",
79
79
  build_func=build_openssl,
80
80
  download={
81
81
  "url": "https://github.com/openssl/openssl/releases/download/openssl-{version}/openssl-{version}.tar.gz",
82
- "version": "3.2.3",
83
- "checksum": "1c04294b2493a868ac5f65d166c29625181a31ed",
82
+ "version": "3.2.4",
83
+ "checksum": "2247802a1193c0f8eb41c870e8de45a2241422d5",
84
84
  },
85
85
  )
86
86
 
87
87
  build.add(
88
88
  "XZ",
89
89
  download={
90
- "fallback_url": "http://tukaani.org/xz/xz-{version}.tar.gz",
91
- "url": "https://woz.io/relenv/dependencies/xz-{version}.tar.gz",
90
+ "url": "http://tukaani.org/xz/xz-{version}.tar.gz",
92
91
  "version": "5.6.2",
93
92
  "checksum": "0d6b10e4628fe08e19293c65e8dbcaade084a083",
94
93
  },
@@ -117,7 +116,7 @@ build.add(
117
116
  "url": "https://www.python.org/ftp/python/{version}/Python-{version}.tar.xz",
118
117
  "fallback_url": "https://woz.io/relenv/dependencies/Python-{version}.tar.gz",
119
118
  "version": build.version,
120
- "checksum": "f498fd8921e3c37e6aded9acb11ed23c8daa0bbe",
119
+ "checksum": "d31d548cd2c5ca2ae713bebe346ba15e8406633a",
121
120
  },
122
121
  )
123
122
 
@@ -131,16 +130,16 @@ build.add(
131
130
  )
132
131
 
133
132
  build = build.copy(
134
- version="3.11.10", checksum="eb0ee5c84407445809a556592008cfc1867a39bc"
133
+ version="3.11.11", checksum="acf539109b024d3c5f1fc63d6e7f08cd294ba56d"
135
134
  )
136
135
  builds.add("darwin", builder=build)
137
136
 
138
137
  build = build.copy(
139
- version="3.12.7", checksum="5a760bbc42c67f1a0aef5bcf7c329348fb88448b"
138
+ version="3.12.9", checksum="465d8a664e63dc5aa1f0d90cd1d0000a970ee2fb"
140
139
  )
141
140
  builds.add("darwin", builder=build)
142
141
 
143
142
  build = build.copy(
144
- version="3.13.0", checksum="0f71dce4a3251460985a944bbd1d1b7db1660a91"
143
+ version="3.13.3", checksum="f26085cf12daef7b60b8a6fe93ef988b9a094aea"
145
144
  )
146
145
  builds.add("darwin", builder=build)
relenv/build/linux.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2022-2024 VMware, Inc.
1
+ # Copyright 2025 Broadcom.
2
2
  # SPDX-License-Identifier: Apache-2
3
3
  """
4
4
  The linux build process.
@@ -35,38 +35,36 @@ def populate_env(env, dirs):
35
35
  :type dirs: ``relenv.build.common.Dirs``
36
36
  """
37
37
  # CC and CXX need to be to have the full path to the executable
38
- env["CC"] = "{}/bin/{}-gcc -no-pie".format(dirs.toolchain, env["RELENV_HOST"])
39
- env["CXX"] = "{}/bin/{}-g++ -no-pie".format(dirs.toolchain, env["RELENV_HOST"])
38
+ env["CC"] = f"{dirs.toolchain}/bin/{env['RELENV_HOST']}-gcc"
39
+ env["CXX"] = f"{dirs.toolchain}/bin/{env['RELENV_HOST']}-g++"
40
40
  # Add our toolchain binaries to the path. We also add the bin directory of
41
41
  # our prefix so that libtirpc can find krb5-config
42
- env["PATH"] = "{}/bin/:{}/bin/:{PATH}".format(dirs.toolchain, dirs.prefix, **env)
42
+ env["PATH"] = f"{dirs.toolchain}/bin/:{dirs.prefix}/bin/:{env['PATH']}"
43
43
  ldflags = [
44
44
  "-Wl,--build-id=sha1",
45
- "-Wl,--rpath={prefix}/lib",
46
- "-L{prefix}/lib",
47
- "-L{}/{RELENV_HOST}/sysroot/lib".format(dirs.toolchain, **env),
48
- "-static-libstdc++",
45
+ f"-Wl,--rpath={dirs.prefix}/lib",
46
+ f"-L{dirs.prefix}/lib",
47
+ f"-L{dirs.toolchain}/{env['RELENV_HOST']}/sysroot/lib",
49
48
  ]
50
- env["LDFLAGS"] = " ".join(ldflags).format(prefix=dirs.prefix)
49
+ env["LDFLAGS"] = " ".join(ldflags)
51
50
  cflags = [
52
51
  "-g",
53
- "-I{prefix}/include",
54
- "-I{prefix}/include/readline",
55
- "-I{prefix}/include/ncursesw",
56
- "-I{}/{RELENV_HOST}/sysroot/usr/include".format(dirs.toolchain, **env),
52
+ f"-I{dirs.prefix}/include",
53
+ f"-I{dirs.prefix}/include/readline",
54
+ f"-I{dirs.prefix}/include/ncursesw",
55
+ f"-I{dirs.toolchain}/{env['RELENV_HOST']}/sysroot/usr/include",
57
56
  ]
58
- env["CFLAGS"] = " ".join(cflags).format(prefix=dirs.prefix)
57
+ env["CFLAGS"] = " ".join(cflags)
59
58
  # CPPFLAGS are needed for Python's setup.py to find the 'nessicery bits'
60
59
  # for things like zlib and sqlite.
61
60
  cpplags = [
62
- "-I{prefix}/include",
63
- "-I{prefix}/include/readline",
64
- "-I{prefix}/include/ncursesw",
65
- "-I{}/{RELENV_HOST}/sysroot/usr/include".format(dirs.toolchain, **env),
61
+ f"-I{dirs.prefix}/include",
62
+ f"-I{dirs.prefix}/include/readline",
63
+ f"-I{dirs.prefix}/include/ncursesw",
64
+ f"-I{dirs.toolchain}/{env['RELENV_HOST']}/sysroot/usr/include",
66
65
  ]
67
- env["CPPFLAGS"] = " ".join(cpplags).format(prefix=dirs.prefix)
68
- env["CXXFLAGS"] = " ".join(cpplags).format(prefix=dirs.prefix)
69
- env["LD_LIBRARY_PATH"] = "{prefix}/lib"
66
+ # env["CXXFLAGS"] = " ".join(cpplags)
67
+ env["CPPFLAGS"] = " ".join(cpplags)
70
68
  env["PKG_CONFIG_PATH"] = f"{dirs.prefix}/lib/pkgconfig"
71
69
 
72
70
 
@@ -85,12 +83,12 @@ def build_bzip2(env, dirs, logfp):
85
83
  [
86
84
  "make",
87
85
  "-j8",
88
- "PREFIX={}".format(dirs.prefix),
89
- "LDFLAGS={}".format(env["LDFLAGS"]),
86
+ f"PREFIX={dirs.prefix}",
87
+ f"LDFLAGS={env['LDFLAGS']}",
90
88
  "CFLAGS=-fPIC",
91
- "CC={}".format(env["CC"]),
92
- "BUILD={}".format("x86_64-linux-gnu"),
93
- "HOST={}".format(env["RELENV_HOST"]),
89
+ f"CC={env['CC']}",
90
+ "BUILD=x86_64-linux-gnu",
91
+ f"HOST={env['RELENV_HOST']}",
94
92
  "install",
95
93
  ],
96
94
  env=env,
@@ -102,10 +100,10 @@ def build_bzip2(env, dirs, logfp):
102
100
  "make",
103
101
  "-f",
104
102
  "Makefile-libbz2_so",
105
- "CC={}".format(env["CC"]),
106
- "LDFLAGS={}".format(env["LDFLAGS"]),
107
- "BUILD={}".format("x86_64-linux-gnu"),
108
- "HOST={}".format(env["RELENV_HOST"]),
103
+ f"CC={env['CC']}",
104
+ f"LDFLAGS={env['LDFLAGS']}",
105
+ "BUILD=x86_64-linux-gnu",
106
+ f"HOST={env['RELENV_HOST']}",
109
107
  ],
110
108
  env=env,
111
109
  stderr=logfp,
@@ -128,10 +126,10 @@ def build_libxcrypt(env, dirs, logfp):
128
126
  runcmd(
129
127
  [
130
128
  "./configure",
131
- "--prefix={}".format(dirs.prefix),
129
+ f"--prefix={dirs.prefix}",
132
130
  # "--enable-libgdbm-compat",
133
- "--build={}".format(env["RELENV_BUILD"]),
134
- "--host={}".format(env["RELENV_HOST"]),
131
+ f"--build={env['RELENV_BUILD']}",
132
+ f"--host={env['RELENV_HOST']}",
135
133
  ],
136
134
  env=env,
137
135
  stderr=logfp,
@@ -155,10 +153,10 @@ def build_gdbm(env, dirs, logfp):
155
153
  runcmd(
156
154
  [
157
155
  "./configure",
158
- "--prefix={}".format(dirs.prefix),
156
+ f"--prefix={dirs.prefix}",
159
157
  "--enable-libgdbm-compat",
160
- "--build={}".format(env["RELENV_BUILD"]),
161
- "--host={}".format(env["RELENV_HOST"]),
158
+ f"--build={env['RELENV_BUILD']}",
159
+ f"--host={env['RELENV_HOST']}",
162
160
  ],
163
161
  env=env,
164
162
  stderr=logfp,
@@ -205,19 +203,20 @@ def build_ncurses(env, dirs, logfp):
205
203
  "--disable-stripping",
206
204
  f"--with-pkg-config={dirs.prefix}/lib/pkgconfig",
207
205
  "--enable-pc-files",
208
- "--build={}".format(env["RELENV_BUILD"]),
209
- "--host={}".format(env["RELENV_HOST"]),
206
+ f"--build={env['RELENV_BUILD']}",
207
+ f"--host={env['RELENV_HOST']}",
210
208
  ],
211
209
  env=env,
212
210
  stderr=logfp,
213
211
  stdout=logfp,
214
212
  )
215
213
  runcmd(["make", "-j8"], env=env, stderr=logfp, stdout=logfp)
214
+ ticdir = str(pathlib.Path(dirs.tmpbuild) / "progs" / "tic")
216
215
  runcmd(
217
216
  [
218
217
  "make",
219
- "DESTDIR={}".format(dirs.prefix),
220
- "TIC_PATH={}".format(str(pathlib.Path(dirs.tmpbuild) / "progs" / "tic")),
218
+ f"DESTDIR={dirs.prefix}",
219
+ f"TIC_PATH={ticdir}",
221
220
  "install",
222
221
  ],
223
222
  env=env,
@@ -240,12 +239,12 @@ def build_readline(env, dirs, logfp):
240
239
  env["LDFLAGS"] = f"{env['LDFLAGS']} -ltinfow"
241
240
  cmd = [
242
241
  "./configure",
243
- "--prefix={}".format(dirs.prefix),
242
+ f"--prefix={dirs.prefix}",
244
243
  ]
245
244
  if env["RELENV_HOST"].find("linux") > -1:
246
245
  cmd += [
247
- "--build={}".format(env["RELENV_BUILD"]),
248
- "--host={}".format(env["RELENV_HOST"]),
246
+ f"--build={env['RELENV_BUILD']}",
247
+ f"--host={env['RELENV_HOST']}",
249
248
  ]
250
249
  runcmd(cmd, env=env, stderr=logfp, stdout=logfp)
251
250
  runcmd(["make", "-j8"], env=env, stderr=logfp, stdout=logfp)
@@ -266,10 +265,10 @@ def build_libffi(env, dirs, logfp):
266
265
  runcmd(
267
266
  [
268
267
  "./configure",
269
- "--prefix={}".format(dirs.prefix),
268
+ f"--prefix={dirs.prefix}",
270
269
  "--disable-multi-os-directory",
271
- "--build={}".format(env["RELENV_BUILD"]),
272
- "--host={}".format(env["RELENV_HOST"]),
270
+ f"--build={env['RELENV_BUILD']}",
271
+ f"--host={env['RELENV_HOST']}",
273
272
  ],
274
273
  env=env,
275
274
  stderr=logfp,
@@ -294,12 +293,12 @@ def build_zlib(env, dirs, logfp):
294
293
  :param logfp: A handle for the log file
295
294
  :type logfp: file
296
295
  """
297
- env["CFLAGS"] = "-fPIC {}".format(env["CFLAGS"])
296
+ env["CFLAGS"] = f"-fPIC {env['CFLAGS']}"
298
297
  runcmd(
299
298
  [
300
299
  "./configure",
301
- "--prefix={}".format(dirs.prefix),
302
- "--libdir={}/lib".format(dirs.prefix),
300
+ f"--prefix={dirs.prefix}",
301
+ f"--libdir={dirs.prefix}/lib",
303
302
  "--shared",
304
303
  ],
305
304
  env=env,
@@ -329,11 +328,11 @@ def build_krb(env, dirs, logfp):
329
328
  runcmd(
330
329
  [
331
330
  "./configure",
332
- "--prefix={}".format(dirs.prefix),
331
+ f"--prefix={dirs.prefix}",
333
332
  "--without-system-verto",
334
333
  "--without-libedit",
335
- "--build={}".format(env["RELENV_BUILD"]),
336
- "--host={}".format(env["RELENV_HOST"]),
334
+ f"--build={env['RELENV_BUILD']}",
335
+ f"--host={env['RELENV_HOST']}",
337
336
  ],
338
337
  env=env,
339
338
  stderr=logfp,
@@ -354,9 +353,9 @@ def build_python(env, dirs, logfp):
354
353
  :param logfp: A handle for the log file
355
354
  :type logfp: file
356
355
  """
357
- env["LDFLAGS"] = "-Wl,--rpath={prefix}/lib {ldflags}".format(
358
- prefix=dirs.prefix, ldflags=env["LDFLAGS"]
359
- )
356
+ ldflagopt = f"-Wl,--rpath={dirs.prefix}/lib"
357
+ if ldflagopt not in env["LDFLAGS"]:
358
+ env["LDFLAGS"] = f"{ldflagopt} {env['LDFLAGS']}"
360
359
 
361
360
  # Needed when using a toolchain even if build and host match.
362
361
  runcmd(
@@ -433,6 +432,8 @@ def build_python(env, dirs, logfp):
433
432
  with io.open("Modules/Setup", "a+") as fp:
434
433
  fp.seek(0, io.SEEK_END)
435
434
  fp.write("*disabled*\n" "_tkinter\n" "nsl\n" "nis\n")
435
+ for _ in ["LDFLAGS", "CFLAGS", "CPPFLAGS", "CXX", "CC"]:
436
+ env.pop(_)
436
437
  runcmd(["make", "-j8"], env=env, stderr=logfp, stdout=logfp)
437
438
  runcmd(["make", "install"], env=env, stderr=logfp, stdout=logfp)
438
439
 
@@ -444,16 +445,15 @@ def build_python(env, dirs, logfp):
444
445
  # runcmd([str(python), "-m", "ensurepip", "-U"], env=env, stderr=logfp, stdout=logfp)
445
446
 
446
447
 
447
- build = builds.add("linux", populate_env=populate_env, version="3.10.15")
448
+ build = builds.add("linux", populate_env=populate_env, version="3.10.17")
448
449
 
449
450
  build.add(
450
451
  "openssl",
451
452
  build_func=build_openssl,
452
453
  download={
453
454
  "url": "https://github.com/openssl/openssl/releases/download/openssl-{version}/openssl-{version}.tar.gz",
454
- "fallback_url": "https://woz.io/relenv/dependencies/openssl-{version}.tar.gz",
455
- "version": "3.2.3",
456
- "checksum": "1c04294b2493a868ac5f65d166c29625181a31ed",
455
+ "version": "3.2.4",
456
+ "checksum": "2247802a1193c0f8eb41c870e8de45a2241422d5",
457
457
  "checkfunc": tarball_version,
458
458
  "checkurl": "https://www.openssl.org/source/",
459
459
  },
@@ -466,7 +466,6 @@ build.add(
466
466
  wait_on=["openssl"],
467
467
  download={
468
468
  "url": "https://www.openssl.org/source/openssl-{version}.tar.gz",
469
- "fallback_url": "https://woz.io/relenv/dependencies/openssl-{version}.tar.gz",
470
469
  "version": "3.0.8",
471
470
  "checksum": "580d8a7232327fe1fa6e7db54ac060d4321f40ab",
472
471
  "checkfunc": tarball_version,
@@ -479,8 +478,8 @@ build.add(
479
478
  "libxcrypt",
480
479
  download={
481
480
  "url": "https://github.com/besser82/libxcrypt/releases/download/v{version}/libxcrypt-{version}.tar.xz",
482
- "version": "4.4.36",
483
- "checksum": "c040de2fd534f84082c9c42114ba11b4e1a67635",
481
+ "version": "4.4.38",
482
+ "checksum": "9aa2fa261be6144af492e9b6bfd03bfaa47f7159",
484
483
  "checkfunc": github_version,
485
484
  "checkurl": "https://github.com/besser82/libxcrypt/releases/",
486
485
  },
@@ -490,7 +489,6 @@ build.add(
490
489
  "XZ",
491
490
  download={
492
491
  "url": "http://tukaani.org/xz/xz-{version}.tar.gz",
493
- "fallback_url": "https://woz.io/relenv/dependencies/xz-{version}.tar.gz",
494
492
  "version": "5.6.2",
495
493
  "checksum": "0d6b10e4628fe08e19293c65e8dbcaade084a083",
496
494
  "checkfunc": tarball_version,
@@ -502,7 +500,6 @@ build.add(
502
500
  build_func=build_sqlite,
503
501
  download={
504
502
  "url": "https://sqlite.org/2024/sqlite-autoconf-{version}.tar.gz",
505
- "fallback_url": "https://woz.io/relenv/dependencies/sqlite-autoconf-{version}.tar.gz",
506
503
  "version": "3460100",
507
504
  "checksum": "1fdbada080f3285ac864c314bfbfc581b13e804b",
508
505
  "checkfunc": sqlite_version,
@@ -515,7 +512,6 @@ build.add(
515
512
  build_func=build_bzip2,
516
513
  download={
517
514
  "url": "https://sourceware.org/pub/bzip2/bzip2-{version}.tar.gz",
518
- "fallback_url": "https://woz.io/relenv/dependencies/bzip2-{version}.tar.gz",
519
515
  "version": "1.0.8",
520
516
  "checksum": "bf7badf7e248e0ecf465d33c2f5aeec774209227",
521
517
  "checkfunc": tarball_version,
@@ -527,9 +523,8 @@ build.add(
527
523
  build_func=build_gdbm,
528
524
  download={
529
525
  "url": "https://ftp.gnu.org/gnu/gdbm/gdbm-{version}.tar.gz",
530
- "fallback_url": "https://woz.io/relenv/dependencies/gdbm-{version}.tar.gz",
531
- "version": "1.24",
532
- "checksum": "7bd455f28c9e4afacc042e0c712aac1b2391fef2",
526
+ "version": "1.25",
527
+ "checksum": "d55bdf2bb5f92f80006166dd8a8323cb2a428bd1",
533
528
  "checkfunc": tarball_version,
534
529
  },
535
530
  )
@@ -539,7 +534,6 @@ build.add(
539
534
  build_func=build_ncurses,
540
535
  download={
541
536
  "url": "https://ftp.gnu.org/pub/gnu/ncurses/ncurses-{version}.tar.gz",
542
- "fallback_url": "https://woz.io/relenv/dependencies/ncurses-{version}.tar.gz",
543
537
  # XXX: Need to work out tinfo linkage
544
538
  # "version": "6.5",
545
539
  # "checksum": "cde3024ac3f9ef21eaed6f001476ea8fffcaa381",
@@ -554,9 +548,8 @@ build.add(
554
548
  build_libffi,
555
549
  download={
556
550
  "url": "https://github.com/libffi/libffi/releases/download/v{version}/libffi-{version}.tar.gz",
557
- "fallback_url": "https://woz.io/relenv/dependencies/libffi-{version}.tar.gz",
558
- "version": "3.4.6",
559
- "checksum": "19251dfee520dff42acefe36bfe76d7168071e01",
551
+ "version": "3.4.8",
552
+ "checksum": "6930b77aebe2465a8e1a8617c4c9a8fa3199b256",
560
553
  "checkfunc": github_version,
561
554
  "checkurl": "https://github.com/libffi/libffi/releases/",
562
555
  },
@@ -567,7 +560,6 @@ build.add(
567
560
  build_zlib,
568
561
  download={
569
562
  "url": "https://zlib.net/fossils/zlib-{version}.tar.gz",
570
- "fallback_url": "https://woz.io/relenv/dependencies/zlib-{version}.tar.gz",
571
563
  "version": "1.3.1",
572
564
  "checksum": "f535367b1a11e2f9ac3bec723fb007fbc0d189e5",
573
565
  "checkfunc": tarball_version,
@@ -578,7 +570,6 @@ build.add(
578
570
  "uuid",
579
571
  download={
580
572
  "url": "https://sourceforge.net/projects/libuuid/files/libuuid-{version}.tar.gz",
581
- "fallback_url": "https://woz.io/relenv/dependencies/libuuid-{version}.tar.gz",
582
573
  "version": "1.0.3",
583
574
  "checksum": "46eaedb875ae6e63677b51ec583656199241d597",
584
575
  "checkfunc": uuid_version,
@@ -591,7 +582,6 @@ build.add(
591
582
  wait_on=["openssl"],
592
583
  download={
593
584
  "url": "https://kerberos.org/dist/krb5/{version}/krb5-{version}.tar.gz",
594
- "fallback_url": "https://woz.io/relenv/dependencies/krb5-{version}.tar.gz",
595
585
  "version": "1.21",
596
586
  "checksum": "e2ee531443122376ac8b62b3848d94376f646089",
597
587
  "checkfunc": krb_version,
@@ -605,7 +595,6 @@ build.add(
605
595
  wait_on=["ncurses"],
606
596
  download={
607
597
  "url": "https://ftp.gnu.org/gnu/readline/readline-{version}.tar.gz",
608
- "fallback_url": "https://woz.io/relenv/dependencies/readline-{version}.tar.gz",
609
598
  "version": "8.2.13",
610
599
  "checksum": "5ffb6a334c2422acbe8f4d2cb11e345265c8d930",
611
600
  "checkfunc": tarball_version,
@@ -620,7 +609,6 @@ build.add(
620
609
  download={
621
610
  "url": "https://sourceforge.net/projects/libtirpc/files/libtirpc-{version}.tar.bz2",
622
611
  # "url": "https://downloads.sourceforge.net/projects/libtirpc/files/libtirpc-{version}.tar.bz2",
623
- "fallback_url": "https://woz.io/relenv/dependencies/libtirpc-{version}.tar.bz2",
624
612
  "version": "1.3.4",
625
613
  "checksum": "63c800f81f823254d2706637bab551dec176b99b",
626
614
  "checkfunc": tarball_version,
@@ -647,9 +635,8 @@ build.add(
647
635
  ],
648
636
  download={
649
637
  "url": "https://www.python.org/ftp/python/{version}/Python-{version}.tar.xz",
650
- "fallback_url": "https://woz.io/relenv/dependencies/Python-{version}.tar.xz",
651
638
  "version": build.version,
652
- "checksum": "f498fd8921e3c37e6aded9acb11ed23c8daa0bbe",
639
+ "checksum": "d31d548cd2c5ca2ae713bebe346ba15e8406633a",
653
640
  "checkfunc": python_version,
654
641
  "checkurl": "https://www.python.org/ftp/python/",
655
642
  },
@@ -666,16 +653,16 @@ build.add(
666
653
  )
667
654
 
668
655
  build = build.copy(
669
- version="3.11.10", checksum="eb0ee5c84407445809a556592008cfc1867a39bc"
656
+ version="3.11.11", checksum="acf539109b024d3c5f1fc63d6e7f08cd294ba56d"
670
657
  )
671
658
  builds.add("linux", builder=build)
672
659
 
673
660
  build = build.copy(
674
- version="3.12.7", checksum="5a760bbc42c67f1a0aef5bcf7c329348fb88448b"
661
+ version="3.12.9", checksum="465d8a664e63dc5aa1f0d90cd1d0000a970ee2fb"
675
662
  )
676
663
  builds.add("linux", builder=build)
677
664
 
678
665
  build = build.copy(
679
- version="3.13.0", checksum="0f71dce4a3251460985a944bbd1d1b7db1660a91"
666
+ version="3.13.3", checksum="f26085cf12daef7b60b8a6fe93ef988b9a094aea"
680
667
  )
681
668
  builds.add("linux", builder=build)
relenv/build/windows.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 windows build process.
@@ -60,7 +60,9 @@ def build_python(env, dirs, logfp):
60
60
  plat,
61
61
  "--no-tkinter",
62
62
  ]
63
+ log.info("Start PCbuild")
63
64
  runcmd(cmd, env=env, stderr=logfp, stdout=logfp)
65
+ log.info("PCbuild finished")
64
66
 
65
67
  # This is where build.bat puts everything
66
68
  # TODO: For now we'll only support 64bit
@@ -128,7 +130,7 @@ def build_python(env, dirs, logfp):
128
130
  )
129
131
 
130
132
 
131
- build = builds.add("win32", populate_env=populate_env, version="3.10.15")
133
+ build = builds.add("win32", populate_env=populate_env, version="3.10.17")
132
134
 
133
135
  build.add(
134
136
  "python",
@@ -136,7 +138,7 @@ build.add(
136
138
  download={
137
139
  "url": "https://www.python.org/ftp/python/{version}/Python-{version}.tar.xz",
138
140
  "version": build.version,
139
- "checksum": "f498fd8921e3c37e6aded9acb11ed23c8daa0bbe",
141
+ "checksum": "d31d548cd2c5ca2ae713bebe346ba15e8406633a",
140
142
  },
141
143
  )
142
144
 
@@ -153,7 +155,6 @@ def finalize(env, dirs, logfp):
153
155
  :type logfp: file
154
156
  """
155
157
  # Lay down site customize
156
- bindir = pathlib.Path(dirs.prefix) / "Scripts"
157
158
  sitepackages = dirs.prefix / "Lib" / "site-packages"
158
159
 
159
160
  install_runtime(sitepackages)
@@ -164,11 +165,12 @@ def finalize(env, dirs, logfp):
164
165
 
165
166
  def runpip(pkg):
166
167
  # XXX Support cross pip installs on windows
167
- pip = bindir / "pip3.exe"
168
168
  env = os.environ.copy()
169
169
  target = None
170
170
  cmd = [
171
- str(pip),
171
+ str(python),
172
+ "-m",
173
+ "pip",
172
174
  "install",
173
175
  str(pkg),
174
176
  ]
@@ -210,16 +212,16 @@ build.add(
210
212
  )
211
213
 
212
214
  build = build.copy(
213
- version="3.11.10", checksum="eb0ee5c84407445809a556592008cfc1867a39bc"
215
+ version="3.11.11", checksum="acf539109b024d3c5f1fc63d6e7f08cd294ba56d"
214
216
  )
215
217
  builds.add("win32", builder=build)
216
218
 
217
219
  build = build.copy(
218
- version="3.12.7", checksum="5a760bbc42c67f1a0aef5bcf7c329348fb88448b"
220
+ version="3.12.9", checksum="465d8a664e63dc5aa1f0d90cd1d0000a970ee2fb"
219
221
  )
220
222
  builds.add("win32", builder=build)
221
223
 
222
224
  build = build.copy(
223
- version="3.13.0", checksum="0f71dce4a3251460985a944bbd1d1b7db1660a91"
225
+ version="3.13.3", checksum="f26085cf12daef7b60b8a6fe93ef988b9a094aea"
224
226
  )
225
227
  builds.add("win32", builder=build)