diff --git a/pkgs/servers/web-apps/discourse/auto_generated_path.patch b/pkgs/servers/web-apps/discourse/auto_generated_path.patch new file mode 100644 index 00000000000..9dcb1cb5595 --- /dev/null +++ b/pkgs/servers/web-apps/discourse/auto_generated_path.patch @@ -0,0 +1,13 @@ +diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb +index 380a63e987..b2ce7fa982 100644 +--- a/lib/plugin/instance.rb ++++ b/lib/plugin/instance.rb +@@ -403,7 +403,7 @@ class Plugin::Instance + end + + def auto_generated_path +- File.dirname(path) << "/auto_generated" ++ "#{Rails.root}/public/assets/auto_generated_plugin_assets/#{name}" + end + + def after_initialize(&block) diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix index abe12fe0d8c..41f0bf91503 100644 --- a/pkgs/servers/web-apps/discourse/default.nix +++ b/pkgs/servers/web-apps/discourse/default.nix @@ -157,6 +157,11 @@ let # Use the Ruby API version in the plugin gem path, to match the # one constructed by bundlerEnv ./plugin_gem_api_version.patch + + # Change the path to the auto generated plugin assets, which + # defaults to the plugin's directory and isn't writable at the + # time of asset generation + ./auto_generated_path.patch ]; # We have to set up an environment that is close enough to @@ -243,6 +248,11 @@ let # Use mv instead of rename, since rename doesn't work across # device boundaries ./use_mv_instead_of_rename.patch + + # Change the path to the auto generated plugin assets, which + # defaults to the plugin's directory and isn't writable at the + # time of asset generation + ./auto_generated_path.patch ]; postPatch = ''