vbatts / tar-split

checksum-reproducible tar archives (utility/library)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GNU @LongLink entries are not handled correctly

vbatts opened this issue · comments

$ mkdir -p asfd/asdf/asdf/asfd/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/
$ touch asfd/asdf/asdf/asfd/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf//axcdfasdfasdfasdfasdfasdfasdfasdfasdfasdf
$ tar cf longlink.tar ./asfd/
$ strings longlink.tar | grep -i longlink
././@LongLink
$ rm -rf asfd/
$ mkdir x
$ tar-split d ./longlink.tar | tar -C ./x -x
time="2015-08-03T14:14:10-04:00" level=info msg="created tar-data.json.gz from ./longlink.tar (read 20480 bytes)"
$ tar-split a --path ./x --output ./longlink.tar.1
INFO[0000] created ./longlink.tar.1 from ./x and tar-data.json.gz (wrote 20480 bytes) 
$ sha1sum longlink.tar*
d9f6babe107b7247953dff6b5b5ae31a3a880add  longlink.tar
3c0114d53cb60a597b733909dde206d6201a7da6  longlink.tar.1

This issue is only caused by archives created by GNU Tar. As of the above mentioned commit, and now release https://github.com/vbatts/tar-split/releases/tag/v0.9.5 here is the same reproducer:

vbatts@valse ~/x (master) $ mkdir -p asfd/asdf/asdf/asfd/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/
vbatts@valse ~/x (master) $ touch asfd/asdf/asdf/asfd/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf/asdf//axcdfasdfasdfasdfasdfasdfasdfasdfasdfasdf
vbatts@valse ~/x (master) $ tar cf longlink.tar ./asfd/
vbatts@valse ~/x (master) $ rm -rf asfd/
vbatts@valse ~/x (master) $ mkdir x
vbatts@valse ~/x (master) $ tar-split d ./longlink.tar | tar -C ./x -x
time="2015-08-11T16:30:43-04:00" level=info msg="created tar-data.json.gz from ./longlink.tar (read 20480 bytes)" 
vbatts@valse ~/x (master) $ tar-split a --path ./x --output ./longlink.tar.1
INFO[0000] created ./longlink.tar.1 from ./x and tar-data.json.gz (wrote 20480 bytes) 
vbatts@valse ~/x (master) $ sha1sum longlink.tar*
71123e1069b5af22adaffc3a9c6c2c02f3968c86  longlink.tar
71123e1069b5af22adaffc3a9c6c2c02f3968c86  longlink.tar.1