| 312 | |
| 313 | |
| 314 | def apply_source_patch(cpython_source_path: pathlib.Path, patch_path: pathlib.Path): |
| 315 | with patch_path.open("rb") as fh: |
| 316 | patch = fh.read().replace(b"\r\n", b"\n") |
| 317 | |
| 318 | with tempfile.NamedTemporaryFile("wb", delete=False) as fh: |
| 319 | fh.write(patch) |
| 320 | normalized_patch = pathlib.Path(fh.name) |
| 321 | |
| 322 | try: |
| 323 | subprocess.run( |
| 324 | [ |
| 325 | "git.exe", |
| 326 | "-C", |
| 327 | str(cpython_source_path), |
| 328 | "apply", |
| 329 | "--whitespace=nowarn", |
| 330 | str(normalized_patch), |
| 331 | ], |
| 332 | check=True, |
| 333 | ) |
| 334 | finally: |
| 335 | normalized_patch.unlink() |
| 336 | |
| 337 | |
| 338 | OPENSSL_PROPS_REMOVE_RULES_LEGACY = b""" |