You can clone with
HTTPS or Subversion.
"pip install ctypes" fails on Python 2.4 because pip does not properly apply the executable file permissions to ./source/libffi/configure when it unpacks the tarball (ctypes-1.0.2.tar.gz).
The ctypes setup.py executes this configure script directly, and this fails with permission denied. As a work around, it's possible to modify the ctypes setup.py to execute "sh /path/to/configure" instead of /path/to/configure
To reproduce this:
Build ctypes manually:
Download and unpack the ctypes tarball manually.
Note that source/libffi/configure has 755 permissions.
Run setup.py build manually. Note that it passes.
Let pip do the first step:
Do "pip install --no-install ctypes"
Verify that pip has unpacked /ctypes/source/libffi/configure with 644 permissions
Run setup.py build. Note that it fails.
This is related (but different) than issue #288, which specifically refers to how symlinks are handled when unpacking a tarball. I opened this issue to ensure that it didn't get lost.
I have not tested how permissions are handled with zip files.
I wonder if the untar_file function could be compared with setuptools' setuptools.archive_util.unpack_tarfile function. It seems to use a different function of the tarfile module, extractfile instead of _extract_member.
Is there a workaround for this, or a fix planned?
Just tried it for myself and it seems to have worked.
This is not just Python 2.4. I just ran into this twice with Python 2.6.
Issue can be resolved by simply changing folder permissions to that of the user you are installing with.
EX: chown -R [user] build/ctypes
This may cause additional issues, but it seemed to resolve a similar issue i was having with pyev
I also ran into this with python 2.7.
Ran into this problem with Python 2.5 and pyev. Are you guys going to fix this? I shouldn't have to account for pip failing to do what its designed to do in my scripts. That is dumb.
Having this problem with Python 2.7. If there's a fix, I'd love to hear about it.
Similar code exists in distribute. https://bitbucket.org/tarek/distribute/pull-request/14/set-permissions-when-extracting-from
Was trying to install ctypes in python 2.4 and EspadaV8's comment worked, thanks!
Very bad behaviour. Gived up to build a .deb package for Djblets with pip. Migrated to easy_install.
for anyone following this, feel free to try the branch in #1146. hoping to include this in pip-1.4.2 shortly.
#1146 merged. closing this issue.
although the summary of this issue is about preserving permissions generally, the description and comments relate to preserving execute permissions, which #1146 handles.
set to be released in 1.4.2 patch release
Any ETA on the 1.4.2 patch release?
(This issue is biting me with testing something that uses pyev in tox. Unfortunately, it will require a new version of pip AND then for tox to bundle the new version of pip in)
with 1.5 betas due to come out in ~2wks, 1.4.2 is very unlikley at this point unless that gets delayed. sorry to mislead.
I ran into this today trying to install ctypes on Debian (pip is 1.5.5).
Running setup.py install for ctypes
env: /home/remram44/vtenv/build/ctypes/source/libffi/configure: Permission denied
Configuring static FFI library:
cd build/temp.linux-i686-2.7/libffi && env CFLAGS='' '/home/remram44/vtenv/build/ctypes/source/libffi/configure'
What is going on?
I'm on ubuntu, and it works with 1.5.5 https://gist.github.com/qwcode/569afafab50e35bdd0d1
what's going on most likely is that '/home/remram44/vtenv/build/ctypes/source/libffi/configure' is not executable. as for why? not sure. be sure you're really using 1.5.5