Sridhar Ratnakumar <sridh...@activestate.com> added the comment: [Lars] (...) We talk about a very small number of cases here and the generator_tools-0.3.5.tar.gz is really broken beyond repair. It is the only thing that should be fixed here IMO ;-)
Sure, that is what the pyopenssl folks did - fix their tarball. However, it is reasonable expect certain tarballs to be 'broken beyond repair' when you are running tarfile.extracall over a huge number of tarballs such as the ones in PyPI. Indeed, the tarfile module already has several fixes for such 'broken' cases, Viz: [quote]'If ignore_zeros is False, treat an empty block as the end of the archive. If it is True, skip empty (and invalid) blocks and try to get as many members as possible. This is only useful for reading concatenated or **damaged** archives.'[endquote] [emphasis added] [quote]'(...)Directory information like owner, modification time and permissions are set after all members have been extracted. This is done to work around two problems: A directory’s modification time is reset each time a file is created in it. And, if a directory’s **permissions do not allow writing**, extracting files to it will fail'[endquote] [emphasis added] [Lars] I agree with David here. It is easy to manipulate the tarfile in advance, as you have shown yourself. The performance argument does not convince me either. Ok. Can you comment on this argument? [quote]'(...)the very reason to write a program to extract tarball (instead of doing it manually) is to automate it .. which automation is *more effective and simple* if ``extractall`` had a flag such as readaccess=True'[endquote] (emphasis added) [quote]'I just think it is not simple (as in, keeping the code off from such hacks that are tangential to the problem being solved) and effective (as in, not having to deal with potential unintended side effects like bugs in the post-fix chmoding or in the pre-fix tarinfo mode modifications).'[endquote] ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6196> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com