Re: PermissionError: [Errno 13] Permission denied: '/sbuild-nonexistent'

2018-08-02 Thread Sergio Durigan Junior
On Thursday, August 02 2018, PICCA Frederic-Emmanuel wrote:

> Hello,
>
> I am preparing the new silx package and I get this error message during the 
> build
>
> WARNING: autodoc: failed to import module 'silx.opencl.codec.byte_offset'; 
> the following exception was raised:
> Traceback (most recent call last):
>   File "/usr/lib/python3/dist-packages/sphinx/ext/autodoc/importer.py", line 
> 152, in import_module
> __import__(modname)
>   File 
> "/<>/silx-0.8.0+dfsg/.pybuild/cpython3_3.6_silx/build/silx/opencl/codec/byte_offset.py",
>  line 58, in 
> from pyopencl.algorithm import GenericScanKernel
>   File "/usr/lib/python3/dist-packages/pyopencl/algorithm.py", line 37, in 
> 
> from pyopencl.scan import ScanTemplate
>   File "/usr/lib/python3/dist-packages/pyopencl/scan.py", line 1137, in 
> 
> key_builder=_NumpyTypesKeyBuilder())
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 566, 
> in __init__
> _PersistentDictBase.__init__(self, identifier, key_builder, container_dir)
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 463, 
> in __init__
> self._make_container_dir()
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 97, 
> in wrapper
> return f(obj, *args, **kwargs)
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 505, 
> in _make_container_dir
> _make_dir_recursively(self.container_dir)
>   File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 72, 
> in _make_dir_recursively
> os.makedirs(dir)
>   File "/usr/lib/python3.6/os.py", line 210, in makedirs
> makedirs(head, mode, exist_ok)
>   File "/usr/lib/python3.6/os.py", line 210, in makedirs
> makedirs(head, mode, exist_ok)
>   File "/usr/lib/python3.6/os.py", line 210, in makedirs
> makedirs(head, mode, exist_ok)
>   File "/usr/lib/python3.6/os.py", line 220, in makedirs
> mkdir(name, mode)
> PermissionError: [Errno 13] Permission denied: '/sbuild-nonexistent'

[ Disclaimer: I haven't analyzed why the package needs access to HOME. ]

> so my question is.
>
> what is the right solutin in order to solve this ?
>
> export HOME=$CURDIR in the rules files (and voila)

Yes, explicitly setting HOME is the default solution in this case.  It
can be a directory inside $(CURDIR) as well.

> What I understant is that there is a persitent mechanism which is legitimate 
> in nomal use.
>
> So what is the purpose of HOME pointing no-where during the build process.

HOME points to /sbuild-nonexistent because in general packages shouldn't
mess with the user's home.  But there are exceptions or special cases
(specially during the testsuite run), so sometimes you need to override
the variable by hand.

Thanks,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/


signature.asc
Description: PGP signature


PermissionError: [Errno 13] Permission denied: '/sbuild-nonexistent'

2018-08-02 Thread PICCA Frederic-Emmanuel
Hello,

I am preparing the new silx package and I get this error message during the 
build

WARNING: autodoc: failed to import module 'silx.opencl.codec.byte_offset'; the 
following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sphinx/ext/autodoc/importer.py", line 
152, in import_module
__import__(modname)
  File 
"/<>/silx-0.8.0+dfsg/.pybuild/cpython3_3.6_silx/build/silx/opencl/codec/byte_offset.py",
 line 58, in 
from pyopencl.algorithm import GenericScanKernel
  File "/usr/lib/python3/dist-packages/pyopencl/algorithm.py", line 37, in 

from pyopencl.scan import ScanTemplate
  File "/usr/lib/python3/dist-packages/pyopencl/scan.py", line 1137, in 
key_builder=_NumpyTypesKeyBuilder())
  File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 566, 
in __init__
_PersistentDictBase.__init__(self, identifier, key_builder, container_dir)
  File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 463, 
in __init__
self._make_container_dir()
  File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 97, in 
wrapper
return f(obj, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 505, 
in _make_container_dir
_make_dir_recursively(self.container_dir)
  File "/usr/lib/python3/dist-packages/pytools/persistent_dict.py", line 72, in 
_make_dir_recursively
os.makedirs(dir)
  File "/usr/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 210, in makedirs
makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 210, in makedirs
    makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/sbuild-nonexistent'


so my question is.

what is the right solutin in order to solve this ?

export HOME=$CURDIR in the rules files (and voila)

or

this is a bug in pytools ?

What I understant is that there is a persitent mechanism which is legitimate in 
nomal use.

So what is the purpose of HOME pointing no-where during the build process.

thanks for your help.


Frédéric