Skip to content

Phase install_lib fails using Spack if system's Python is used #86

@ajaust

Description

@ajaust

i tried to install the bindings using Spack on a system where external packages were set up with spack external find. This command also found the pre-installed Python of the system. Now, building the package py-pyprecice fails with the following error message:

==> Installing py-pyprecice-2.2.0.1-z4ojdrz6aqadiqidezkkubiifvwjr4uk
==> No binary for py-pyprecice-2.2.0.1-z4ojdrz6aqadiqidezkkubiifvwjr4uk found: installing from source
==> Fetching https://github.com/precice/python-bindings/archive/v2.2.0.1.tar.gz
##################################################################################################################################### 100.0%#-=#=- #     #                                                                                                                             
==> No patches needed for py-pyprecice
==> py-pyprecice: Executing phase: 'install_lib'
==> Error: ProcessError: Command exited with status 1:
    '/usr/bin/python3.9' '-s' 'setup.py' '--no-user-cfg' 'install_lib'

1 error found in build log:
     63     8611 |   __pyx_v_self->thisptr->writeBlockScalarData(__pyx_t_4, __pyx_v_size, ((int const *)__pyx_v__vertex_ids->data), ((doubl
           e const *)__pyx_v__values->data));
     64          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     65    /home/alex/software/spack/lib/spack/env/gcc/g++ -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fno-semantic-interpos
           ition -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now build/temp.linux-x86_64-3.9/tmp/alex/spack-stage/spack-stage-py-pyprecic
           e-2.2.0.1-z4ojdrz6aqadiqidezkkubiifvwjr4uk/spack-src/cyprecice/cyprecice.o -L/usr/lib -o build/lib.linux-x86_64-3.9/cyprecice.cp
           ython-39-x86_64-linux-gnu.so -lprecice
     66    UPDATING build/lib.linux-x86_64-3.9/precice/_version.py
     67    set build/lib.linux-x86_64-3.9/precice/_version.py to 'v2.2.0.1'
     68    copying build/lib.linux-x86_64-3.9/cyprecice.cpython-39-x86_64-linux-gnu.so -> /usr/lib/python3.9/site-packages
  >> 69    error: could not create '/usr/lib/python3.9/site-packages/cyprecice.cpython-39-x86_64-linux-gnu.so': Permission denied

The install_lib phase creates the necessary _version.py file , but it also wants to copy files into the system path

   68    copying build/lib.linux-x86_64-3.9/cyprecice.cpython-39-x86_64-linux-gnu.so -> /usr/lib/python3.9/site-packages
>> 69    error: could not create '/usr/lib/python3.9/site-packages/cyprecice.cpython-39-x86_64-linux-gnu.so': Permission denied

which is not possible without super user rights. Thus, the phase fails.

Why does the build phase want to copy data over and is it necessary? The answer should be no as all py-pyprecice related files should end up in the corresponding Spack directory that is user-writable.

This might be related to the problem observed during the workshop which led to #84.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions