Skip to content

[swh-docs] bin/ln-sphinx-subprojects: Use rsync to copy .py sources only

When trying to generate the documentation after having played with docker-compose using a docker-compose.override.yml file, the following type of errors appears:

make[2] : on entre dans le répertoire « /home/antoine/swh/swh-environment »
make[2]: avertissement : jobserver n'est pas disponible : utilisation de -j1. Ajouter « + » à la règle parent du make.
cp: impossible de créer le lien direct 'sources/swh/objstorage/__pycache__/__init__.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/__pycache__/__init__.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/__pycache__/objstorage.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/__pycache__/objstorage.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/__pycache__/exc.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/__pycache__/exc.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/__pycache__/objstorage_pathslicing.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/__pycache__/objstorage_pathslicing.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/__pycache__/objstorage_in_memory.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/__pycache__/objstorage_in_memory.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/__pycache__/objstorage_rados.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/__pycache__/objstorage_rados.cpython-36.pyc': Opération non permise
make[2]: rien à faire pour « assets ».
make[2] : on quitte le répertoire « /home/antoine/swh/swh-environment/swh-mirror-forge/docs »
cp: impossible de créer le lien direct 'sources/swh/objstorage/api/__pycache__/server.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/api/__pycache__/server.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/api/__pycache__/__init__.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/api/__pycache__/__init__.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/api/__pycache__/client.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/api/__pycache__/client.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/api/__pycache__/wsgi.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/api/__pycache__/wsgi.cpython-36.pyc'make -C swh-model/docs assets
: Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/cloud/__pycache__/__init__.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/cloud/__pycache__/__init__.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/cloud/__pycache__/objstorage_cloud.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/cloud/__pycache__/objstorage_cloud.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/__pycache__/__init__.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/__pycache__/__init__.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/__pycache__/multiplexer_objstorage.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/__pycache__/multiplexer_objstorage.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/__pycache__/striping_objstorage.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/__pycache__/striping_objstorage.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/filter/__pycache__/__init__.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/filter/__pycache__/__init__.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/filter/__pycache__/read_write_filter.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/filter/__pycache__/read_write_filter.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/filter/__pycache__/filter.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/filter/__pycache__/filter.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/objstorage/multiplexer/filter/__pycache__/id_filter.cpython-36.pyc' vers '../../swh-objstorage/swh/objstorage/multiplexer/filter/__pycache__/id_filter.cpython-36.pyc': Opération non permise
cp: impossible de créer le lien direct 'sources/swh/__pycache__/__init__.cpython-36.pyc' vers '../../swh-objstorage/swh/__pycache__/__init__.cpython-36.pyc': Opération non permise

As a workaround, use rsync to copy the sources, excluding any files that is not a Python source one. I did not manage to keep the hard link feature from the previous cp command but considering it is only a couple of megabytes to copy, that's not really a big deal IMHO.


Migrated from D1232 (view on Phabricator)

Merge request reports