pip install - missing execute bits

hi,
I installed ansible via pip on a CentOS 7 workstation

$ sudo yum install python-virtualenv $ virtualenv venv $ . venv/bin/activate $ pip install ansible

but all installed binaries are missing the execute permission

$ ls -l venv/bin/ansible -rw-rw-r--. 1 me me 5975 Dec 14 10:35 venv/bin/ansible

why is that?
yes, there is the pip warning.

You are using pip version 9.0.1, however version 19.3.1 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.

i tried upgrading pip, setuptools and wheel inside the virtualenv, but no change → missing execute bits

I also tried in a CentOS 7 container and installing inside the container went fine → correct permissions, i.e. execute bits set.
I tried on another workstation → missing execute bits
I tried on server → execute bits are set.

I do not know how to debug this to solve the problem, asking for help.

Sounds like something with umask is off on your control system.
Remove the venv dir, and try again, but now first issue "umask 002"
before creating the venv.

Sounds like something with umask is off on your control system.
Remove the venv dir, and try again, but now first issue “umask 002”
before creating the venv.

it is not the umask

with umask 000 i get

-rw-rw-rw-. 1 mafalb mafalb 5983 Dec 15 18:31 ansible

do you have another idea?

also with umask 000 if I install ansible-lint I get

-rwxrwxrwx. 1 mafalb mafalb 273 Dec 15 18:41 ansible-venv/bin/ansible-lint

my interpretation: the permission problem is only with installed executables from ansible, not others.
it seems it is a problem with ansible but only under specific circumstances.

I found out that it happens with /tmp mounted with noexec option
There is an issue about that
https://github.com/ansible/ansible/issues/57436