nixpkgs/pkgs/applications/misc/sigal/copytree-permissions.patch
Robert Helgesson bacac7cf54 sigal: fix crash when building gallery
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.
2022-08-31 13:06:50 +02:00

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"]):