Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip does not preserve permissions when unpacking (Permission denied running ./configure) #317

Closed
duncf opened this issue Jul 11, 2011 · 18 comments
Labels
auto-locked Outdated issues that have been locked by automation type: bug A confirmed bug or unintended behavior

Comments

@duncf
Copy link

duncf commented Jul 11, 2011

"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.

@jezdez
Copy link
Member

jezdez commented Jul 19, 2011

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.

@nickroci
Copy link

Is there a workaround for this, or a fix planned?

@EspadaV8
Copy link

@nickpholden

  1. pip install --no-install ctypes
  2. cd /path/from/pip/error (should end in something like build/ctypes/source/libffi/configure just remove the configure part)
  3. chmod +x configure
  4. pip install ctypes

Just tried it for myself and it seems to have worked.

@macropin
Copy link

macropin commented Mar 5, 2012

This is not just Python 2.4. I just ran into this twice with Python 2.6.

@JLewis604
Copy link

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

@kormoc
Copy link

kormoc commented Aug 13, 2012

I also ran into this with python 2.7.

@Karamorf
Copy link

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.

@tkell
Copy link

tkell commented Oct 8, 2012

Having this problem with Python 2.7. If there's a fix, I'd love to hear about it.

@dholth
Copy link
Member

dholth commented Oct 9, 2012

@jenc88
Copy link

jenc88 commented Nov 20, 2012

Was trying to install ctypes in python 2.4 and EspadaV8's comment worked, thanks!

@ei-grad
Copy link

ei-grad commented Jul 17, 2013

Very bad behaviour. Gived up to build a .deb package for Djblets with pip. Migrated to easy_install.

@qwcode
Copy link
Contributor

qwcode commented Aug 19, 2013

for anyone following this, feel free to try the branch in #1146. hoping to include this in pip-1.4.2 shortly.

@qwcode
Copy link
Contributor

qwcode commented Aug 20, 2013

#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.

@qwcode qwcode closed this as completed Aug 20, 2013
@qwcode
Copy link
Contributor

qwcode commented Aug 20, 2013

set to be released in 1.4.2 patch release

@msabramo
Copy link
Contributor

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)

@qwcode
Copy link
Contributor

qwcode commented Oct 29, 2013

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.

@remram44
Copy link
Contributor

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'
    Failed

What is going on?

@qwcode
Copy link
Contributor

qwcode commented May 30, 2014

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

@lock lock bot added the auto-locked Outdated issues that have been locked by automation label Jun 5, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Jun 5, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
auto-locked Outdated issues that have been locked by automation type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests