funny permission bits in pyOpenSSL-0.6.tar.gz confuse tarfile.py
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pyOpenSSL |
Fix Released
|
Medium
|
Unassigned |
Bug Description
As reported on the setuptools roundup -- http://
"/usr/local/
line 1656, in _extract_member
self.
File
"/usr/local/
line 1777, in chmod
raise ExtractError("could not change mode of %s to mode %o (octal),
exception: %s" % (targetpath, tarinfo.mode, e))
tarfile.
/tmp/easy_
1] Operation not permitted: '/tmp/easy_
Inspection shows that the pyOpenSSL-
Exarkun mentioned on IRC that he wasn't going to generate a new pyOpenSSL-
Also attached is the result of find . -type f | sha256sum, which does not differ between this tarball and the original one.
Changed in pyopenssl: | |
status: | In Progress → Fix Released |
As reported on the setuptools roundup -- http:// bugs.python. org/setuptools/ issue16 -- if one tries to install pyOpenSSL- 0.6.tar. gz using Python's tarfile.py (instead of GNU tar) to unpack the tarball, then you get an exception that ends with this:
"/usr/local/ stow/python- release25- maint-2008- 05-30/lib/ python2. 5/tarfile. py", chmod(tarinfo, targetpath) stow/python- release25- maint-2008- 05-30/lib/ python2. 5/tarfile. py", ExtractError: could not change mode of install- 4yCggq/ pyOpenSSL- 0.6 to mode 2755 (octal), exception: [Errno install- 4yCggq/ pyOpenSSL- 0.6'
line 1656, in _extract_member
self.
File
"/usr/local/
line 1777, in chmod
raise ExtractError("could not change mode of %s to mode %o (octal),
exception: %s" % (targetpath, tarinfo.mode, e))
tarfile.
/tmp/easy_
1] Operation not permitted: '/tmp/easy_
Inspection shows that the pyOpenSSL- 0.6.tar. gz has the g+s bit set on all of its directories. Unsetting that bit and generating a new tarball makes this problem stop happening. Resetting that bit and regenerating a new tarball makes this problem come back.
Exarkun mentioned on IRC that he wasn't going to generate a new pyOpenSSL- 0.6.tar. gz, so I made one for him, attached.
Also attached is the result of find . -type f | sha256sum, which does not differ between this tarball and the original one.