@@ -2641,13 +2641,20 @@ def add_link(tar: tarfile.TarFile, name: str, linktype: str, target: str) -> Non
2641
2641
add_file (sdist_tar , "src/linktest/sub/__init__.py" , "" )
2642
2642
add_file (sdist_tar , "src/linktest/sub/inner.dat" , "Data" )
2643
2643
linknames = []
2644
+
2645
+ # Windows requires native path separators in symlink targets.
2646
+ # (see https://github.com/python/cpython/issues/57911)
2647
+ # (This is not needed for hardlinks, nor for the workaround tarfile
2648
+ # uses if symlinking is disabled.)
2649
+ SEP = os .path .sep
2650
+
2644
2651
pkg_root = f"{ common_prefix } src/linktest"
2645
2652
for prefix , target_tag , linktype , target in [
2646
2653
("" , "root" , "sym" , "root.dat" ),
2647
2654
("" , "root" , "hard" , f"{ pkg_root } /root.dat" ),
2648
- ("" , "inner" , "sym" , "sub/ inner.dat" ),
2655
+ ("" , "inner" , "sym" , f "sub{ SEP } inner.dat" ),
2649
2656
("" , "inner" , "hard" , f"{ pkg_root } /sub/inner.dat" ),
2650
- ("sub/" , "root" , "sym" , "../ root.dat" ),
2657
+ ("sub/" , "root" , "sym" , f "..{ SEP } root.dat" ),
2651
2658
("sub/" , "root" , "hard" , f"{ pkg_root } /root.dat" ),
2652
2659
("sub/" , "inner" , "sym" , "inner.dat" ),
2653
2660
("sub/" , "inner" , "hard" , f"{ pkg_root } /sub/inner.dat" ),
0 commit comments