Nixos 22.05 upgrade fails with jupyter_server and PermissionError: [Errno 13] Permission denied: '/homeless-shelter'

I switched channels to nixos 22.05, however fail to upgrade.

EDIT: The failing package is

python39Packages.jupyterlab

(while the same from unstable works - hence that is my workaround now)

Here a short excerpt from the nixos-rebuild logs

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = '/homeless-shelter', mode = 511, exist_ok = False

    def makedirs(name, mode=0o777, exist_ok=False):
        """makedirs(name [, mode=0o777][, exist_ok=False])
    
        Super-mkdir; create a leaf directory and all intermediate ones.  Works like
        mkdir, except that any intermediate path segment (not just the rightmost)
        will be created if it does not exist. If the target directory already
        exists, raise an OSError if exist_ok is False. Otherwise no exception is
        raised.  This is recursive.
    
        """
        head, tail = path.split(name)
        if not tail:
            head, tail = path.split(head)
        if head and tail and not path.exists(head):
            try:
                makedirs(head, exist_ok=exist_ok)
            except FileExistsError:
                # Defeats race condition when another thread created the path
                pass
            cdir = curdir
            if isinstance(tail, bytes):
                cdir = bytes(curdir, 'ASCII')
            if tail == cdir:           # xxx/newdir/. exists if xxx/newdir exists
                return
        try:
>           mkdir(name, mode)
E           PermissionError: [Errno 13] Permission denied: '/homeless-shelter'

/nix/store/xpwwghl72bb7f48m51amvqiv1l25pa01-python3-3.9.13/lib/python3.9/os.py:225: PermissionError
______ ERROR at teardown of test_licenses_cli[mime_format_parser2-False] _______

self = <traitlets.traitlets.Unicode object at 0x7ffff5098700>
obj = <jupyter_server.serverapp.ServerApp object at 0x7ffff44e3610>
cls = <class 'jupyter_server.serverapp.ServerApp'>

    def get(self, obj, cls=None):
        try:
>           value = obj._trait_values[self.name]
E           KeyError: 'info_file'

/nix/store/mlpiy4aiwaxmc8crywl7p8n8y58lf5p4-python3.9-traitlets-5.1.1/lib/python3.9/site-packages/traitlets/traitlets.py:537: KeyError

During handling of the above exception, another exception occurred:

self = <traitlets.traitlets.Unicode object at 0x7ffff5c36a30>
obj = <jupyter_server.serverapp.ServerApp object at 0x7ffff44e3610>
cls = <class 'jupyter_server.serverapp.ServerApp'>

    def get(self, obj, cls=None):
        try:
>           value = obj._trait_values[self.name]
E           KeyError: 'runtime_dir'

/nix/store/mlpiy4aiwaxmc8crywl7p8n8y58lf5p4-python3.9-traitlets-5.1.1/lib/python3.9/site-packages/traitlets/traitlets.py:537: KeyError

and the summary

=========================== short test summary info ============================
ERROR tests/test_licenses_api.py::test_licenses_cli[mime_format_parser0-True]
ERROR tests/test_licenses_api.py::test_licenses_cli[mime_format_parser0-False]
ERROR tests/test_licenses_api.py::test_licenses_cli[mime_format_parser1-True]
ERROR tests/test_licenses_api.py::test_licenses_cli[mime_format_parser1-False]
ERROR tests/test_licenses_api.py::test_licenses_cli[mime_format_parser2-True]
ERROR tests/test_licenses_api.py::test_licenses_cli[mime_format_parser2-False]
ERROR tests/test_licenses_api.py::test_labextension_bundle - PermissionError:...
=========== 115 passed, 1 skipped, 979 warnings, 7 errors in 12.59s ============
error: builder for '/nix/store/1lmqdrw5kql5i1zdvn80my27y273awjc-python3.9-jupyterlab_server-2.12.0.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/4scaa29bilwn8jcj527xfwf3n0fsl8wc-python3.9-jupyterlab-3.3.4.drv' failed to build

any help would be highly appreciated.
I thought everything in nixos channels is tested to properly build, why does this not build out of the box?

Cross-reference: https://github.com/NixOS/nixpkgs/issues/181748

1 Like