# during salsa-ci reproducibility testing, tar fails to extract the testdata:
# "tar: test-0.data: No se puede cambiar el propietario a uid 1000, gid 100: Argumento inválido"
#
# this patch prevents the issue by adding --no-same-owner to the extract
# commands for all tests. That behaviour is the default when extracting as
# a non-root user, but not for root.
#
# forwarded upstream: https://github.com/Parchive/par2cmdline/issues/139
--- a/tests/test1
+++ b/tests/test1
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" 2>&1 || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par1files.tar.gz" 2>&1 || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" 2>&1 || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par1files.tar.gz" 2>&1 || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 banner="Verifying using PAR 1.0 data"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test10
+++ b/tests/test10
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/smallsubdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/smallsubdirdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/smallsubdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/smallsubdirdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 banner="Repairing deleted subdir using PAR 2.0 data"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test11
+++ b/tests/test11
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/100blocks.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/100blocks.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="create par2files using 100 blocks"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test12
+++ b/tests/test12
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/readbeyondeof.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/readbeyondeof.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="repair files where the filesize got changed"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test13
+++ b/tests/test13
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="create 5% recovery files"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test14
+++ b/tests/test14
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="create 5% recovery files"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test15
+++ b/tests/test15
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/par2-0.6.8-crash.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/par2-0.6.8-crash.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="repair files should succeed, (issue #35)"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test16
+++ b/tests/test16
@@ -36,7 +36,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="don't allow files outside par2 basedir, (issue #34, #36)"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test17
+++ b/tests/test17
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/bug44.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/bug44.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="remove subdir structure and repair, see #44"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test2
+++ b/tests/test2
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 banner="Verifying using PAR 2.0 data"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test21
+++ b/tests/test21
@@ -49,7 +49,7 @@
 echo $dashes
 
 cd datafiles
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 $PARBINARY c -B ./ ../parfiles/recovery * || { echo "ERROR: Creating PAR 2.0 data failed" ; exit 1; } >&2
 
--- a/tests/test22
+++ b/tests/test22
@@ -36,7 +36,7 @@
 mkdir -p "$faraway" || { echo "ERROR: Could not create fancy folder" ; exit 1; } >&2
 mkdir rundir
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="par2 can be run from any starting dir"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test23
+++ b/tests/test23
@@ -36,8 +36,8 @@
 mkdir -p "$faraway" || { echo "ERROR: Could not create fancy folder" ; exit 1; } >&2
 mkdir rundir
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par2files.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="par2 can be run from any starting dir"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test24
+++ b/tests/test24
@@ -36,8 +36,8 @@
 mkdir -p "$faraway" || { echo "ERROR: Could not create fancy folder" ; exit 1; } >&2
 mkdir rundir
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par2files.tar.gz" -C "$faraway" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 cp "$faraway"/test-0.data "$faraway"/test-0.data.orig
 cp "$faraway"/test-1.data "$faraway"/test-1.data.orig
--- a/tests/test3
+++ b/tests/test3
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par1files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par1files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 cp test-0.data test-0.data.orig
 cp test-1.data test-1.data.orig
--- a/tests/test4
+++ b/tests/test4
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 cp test-0.data test-0.data.orig
 cp test-1.data test-1.data.orig
--- a/tests/test5
+++ b/tests/test5
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="Creating 100% PAR 2.0 recovery data"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test5rk
+++ b/tests/test5rk
@@ -38,7 +38,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 banner="Creating 100% PAR 2.0 recovery data"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test6
+++ b/tests/test6
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/subdirdata-par2files-unix.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/subdirdata-par2files-unix.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 banner="Repairing two files in subdirs using PAR 2.0 data"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test7
+++ b/tests/test7
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/subdirdata-par2files-win.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/subdirdata-par2files-win.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 banner="Repairing two files in subdirs using PAR 2.0 data generated on windows"
 dashes=`echo "$banner" | sed s/./-/g`
--- a/tests/test8
+++ b/tests/test8
@@ -31,7 +31,7 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/subdirdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
 
 mkdir source1 && mv subdir1 subdir2 source1
 
--- a/tests/test9
+++ b/tests/test9
@@ -31,8 +31,8 @@
 
 mkdir "run$testname" && cd "run$testname" || { echo "ERROR: Could not change to test directory" ; exit 1; } >&2
 
-tar -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
-tar -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata.tar.gz" || { echo "ERROR: Could not extract data test files" ; exit 1; } >&2
+tar --no-same-owner -xzf "$TESTDATA/flatdata-par2files.tar.gz" || { echo "ERROR: Could not extract par test files" ; exit 1; } >&2
 
 banner="rename using PAR 2.0 data"
 dashes=`echo "$banner" | sed s/./-/g`
