On 9/13/19 2:55 PM, enh wrote: > On Fri, Sep 13, 2019 at 12:08 PM Rob Landley <[email protected]> wrote: >> >> On 9/12/19 6:20 PM, enh via Toybox wrote: >>> This doesn't fix xvf, but I've run out of time for now and wanted to >>> show what I'd found so far. >> >> Ah sorry, I just hadn't gotten around to it yet. (New job, terrible cold, >> and I >> was working on -newerXY and shell...) >> >> I'll take a look, > > i've found the issue in the meantime. literally the last place i > looked (for obvious reasons when you see the fix).
Things are always in the last place you look because you stop looking when you find them. > new patch attached... Um, 2 issues here: missing truncate we end with a hole (I thought I had a test for that?) but if we missed that, sure. I prefer not to call a NOP truncate() on a file we don't need to (that wasn't sparse), but I can add a test. But "realsize" is blocks *512 except I don't remember anything else being listed in blocks? The file length isn't guaranteed to be a multiple of 512, and the sparse segments are in byte lengths. The _last_ one can certainly be something other than 512...) $ dd if=/dev/zero of=blah bs=1 count=1 seek=$((1<<20)) $ tar cf blah.tar --sparse blah $ tar tvf blah.tar -rw-r--r-- landley/landley 1048577 2019-09-13 18:45 blah $ ls -l blah.tar -rw-r--r-- 1 landley landley 10240 Sep 13 20:10 blah.tar Whereas the new one is doing: $ ./tar tvf blah.tar -rw-r--r-- landley/landley 1048576 2019-09-13 18:45 blah I think what we need to do is add up the segments. (Which is what I thought it _was_ doing, but my head cold has turned into dizzy+headache and I has a tired.) I can fix this when I feel better if you don't get to it. >> By the way, do you have a test tarball with xattrs in it? I want to add xattr >> support, but devuan seem to doesn't use xattrs anywhere I can spot. (I didn't >> install selinux support.) > > no, but i'll make one. (i need to write a test for this tar fix too.) Yay. Thank you. >> Rob Rob _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
