Code Monkey home page Code Monkey logo

Comments (10)

brendan-duncan avatar brendan-duncan commented on August 21, 2024

Looks like I need to add support for the tar PAX extension. I at least pushed a fix the crash, but until I add the PAX extension support, the PAX headers will get treated as files so you'll have extra files that get extracted out (in directories called PaxHeader). These are similar to the meta files Mac's use. I'll add the proper PAX extension support shortly.

from archive.

brendan-duncan avatar brendan-duncan commented on August 21, 2024

I pushed a fix to handle the PAX header files that are part of the POSIX extension. I still need to handle parsing them to extract the extra metadata, but the only thing it really means is the group and user id for files may not be correct, or some other more extreme cases that would not occur in pub archives, like files exceeding 8GB or extremely long file names. I will continue working on trying to conform to the full spec, but I suspect as it is now is sufficient for the archives in pub.

from archive.

isoos avatar isoos commented on August 21, 2024

tarurls.txt
I've uploaded a few URLs of .tar.gz files that I had some issues with. I think half of them were parse issues, the other half was parsing OK but the README contained a weird UTF-8. So best case you should be able to parse all of them, worst case roughly half of them.
(And ignore that I have UTF-8 issues, I think it is unrelated to your lib)

from archive.

brendan-duncan avatar brendan-duncan commented on August 21, 2024

from archive.

brendan-duncan avatar brendan-duncan commented on August 21, 2024

I noticed 7zip doesn't handle the paxHeaders either and is writing them out as files. The POSIX standard does say this is the proper thing to do if the PAX metadata files aren't explicitly handled, but this seems wrong to me as it adds extra files that wouldn't otherwise exist. I will continue to have the archive library not write those paxHeader files out, and since I'm using 7zip to validate the extracted archives, I'll have my tests ignore those paxHeader files from the 7zip extractions.

from archive.

brendan-duncan avatar brendan-duncan commented on August 21, 2024

I ran a file-by-file, byte-by-byte comparison test for every archive in the tarurls.txt list, extracting them with 7zip and the dart library. Every archive passed the test. The test is in test/pub_test.dart.

The pushed version has the 7zip and file comparison functions disabled since the Travis CI system won't have 7zip available. I can change it to use the Linux tar program for doing the CI unit test, if necessary.

from archive.

isoos avatar isoos commented on August 21, 2024

Thanks @brendan-duncan! If you feel confident about it, please publish the new version, I'll run it through the staging db of pub.

from archive.

brendan-duncan avatar brendan-duncan commented on August 21, 2024

from archive.

brendan-duncan avatar brendan-duncan commented on August 21, 2024

All right, I switched to the stable branch and published the fixes as 1.0.29.

from archive.

isoos avatar isoos commented on August 21, 2024

I've validated the pub staging, and this issue is fixed with 1.0.29.

from archive.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.