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.
This commit is contained in:
parent
5df5df389a
commit
bacac7cf54
16
pkgs/applications/misc/sigal/copytree-permissions.patch
Normal file
16
pkgs/applications/misc/sigal/copytree-permissions.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
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"]):
|
|
@ -14,6 +14,8 @@ python3.pkgs.buildPythonApplication rec {
|
|||
hash = "sha256-4Zsb/OBtU/jV0gThEYe8bcrb+6hW+hnzQS19q1H409Q=";
|
||||
};
|
||||
|
||||
patches = [ ./copytree-permissions.patch ];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
# install_requires
|
||||
jinja2
|
||||
|
|
Loading…
Reference in New Issue
Block a user