summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Clay <matt@mystile.com>2023-05-15 13:53:42 -0700
committerGitHub <noreply@github.com>2023-05-15 13:53:42 -0700
commit0b1b2c238a12ad5d2dead5cde03f3f6aa3e64e12 (patch)
tree60a2fb9a1ac74680c6d7809b001f5ebd222610c1
parentd58b2c9a4cd7754c13ab3a1ad1a6a724e37f33be (diff)
downloadansible-0b1b2c238a12ad5d2dead5cde03f3f6aa3e64e12.tar.gz
[stable-2.15] pep517 backend - Copy symlinks when copying source (#80690) (#80700)
(cherry picked from commit 54576cd794530768a67bddba2f7450b614611e92)
-rw-r--r--changelogs/fragments/pep517-backend-traceback-fix.yml3
-rw-r--r--packaging/pep517_backend/_backend.py2
2 files changed, 4 insertions, 1 deletions
diff --git a/changelogs/fragments/pep517-backend-traceback-fix.yml b/changelogs/fragments/pep517-backend-traceback-fix.yml
new file mode 100644
index 0000000000..cf779f9b46
--- /dev/null
+++ b/changelogs/fragments/pep517-backend-traceback-fix.yml
@@ -0,0 +1,3 @@
+bugfixes:
+ - pep517 build backend - Copy symlinks when copying the source tree.
+ This avoids tracebacks in various scenarios, such as when a venv is present in the source tree.
diff --git a/packaging/pep517_backend/_backend.py b/packaging/pep517_backend/_backend.py
index 633de63bff..f7c9226655 100644
--- a/packaging/pep517_backend/_backend.py
+++ b/packaging/pep517_backend/_backend.py
@@ -118,7 +118,7 @@ def build_sdist( # noqa: WPS210, WPS430
original_src_dir = Path.cwd().resolve()
with _run_in_temporary_directory() as tmp_dir:
tmp_src_dir = Path(tmp_dir) / 'src'
- copytree(original_src_dir, tmp_src_dir)
+ copytree(original_src_dir, tmp_src_dir, symlinks=True)
os.chdir(tmp_src_dir)
if build_manpages_requested: