When building a gallery using `sigal build` the process would error out with an message along the lines of shutil.Error: [('/nix/store/…/static/css', '/…/_build/static/css', "[Errno 13] Permission denied: '/…/_build/static/css'"), … ] This is caused by `shutil.copytree` copying the permissions (555) of the directories in the Nix store and then attempting to make modifications to the copied directory. The patch makes the copy ignore the permissions of directories.
17 lines
855 B
Diff
17 lines
855 B
Diff
diff -Nurp sigal-2.3.orig/sigal/writer.py sigal-2.3/sigal/writer.py
|
|
--- sigal-2.3.orig/sigal/writer.py 2022-08-08 19:43:10.934707194 +0200
|
|
+++ sigal-2.3/sigal/writer.py 2022-08-08 19:44:57.542382532 +0200
|
|
@@ -103,7 +103,11 @@ class AbstractWriter:
|
|
os.path.join(THEMES_PATH, 'default', 'static'),
|
|
os.path.join(self.theme, 'static'),
|
|
):
|
|
- shutil.copytree(static_path, self.theme_path, dirs_exist_ok=True)
|
|
+ # https://stackoverflow.com/a/17022146/4935114
|
|
+ orig_copystat = shutil.copystat
|
|
+ shutil.copystat = lambda x, y: x
|
|
+ shutil.copytree(static_path, self.theme_path, dirs_exist_ok=True, copy_function=shutil.copy)
|
|
+ shutil.copystat = orig_copystat
|
|
|
|
if self.settings["user_css"]:
|
|
if not os.path.exists(self.settings["user_css"]):
|