summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortalyz <kim.lindberger@gmail.com>2021-06-23 18:15:14 +0200
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2021-06-30 22:07:25 +0000
commit3b84448e67f92c1a589d33761fd2ae9bd915b481 (patch)
treec840f2b2751179d1a79a0294f926a00fb343c0ab
parentjetbrains: updates (diff)
downloadnixpkgs-3b84448e67f92c1a589d33761fd2ae9bd915b481.tar.gz
discourse: Fix plugin support
For plugins to work properly, their assets need to be precompiled along with the rest of Discourse's assets. This means we need to build new packages when the list of plugins change. (cherry picked from commit 9af3672f4faaafba0ce0129a87fc7925c14eeb61)
-rw-r--r--nixos/modules/services/web-apps/discourse.nix5
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix7
2 files changed, 9 insertions, 3 deletions
diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix
index 49958fc6190c..00a269ba871d 100644
--- a/nixos/modules/services/web-apps/discourse.nix
+++ b/nixos/modules/services/web-apps/discourse.nix
@@ -30,6 +30,9 @@ in
package = lib.mkOption {
type = lib.types.package;
default = pkgs.discourse;
+ apply = p: p.override {
+ plugins = lib.unique (p.enabledPlugins ++ cfg.plugins);
+ };
defaultText = "pkgs.discourse";
description = ''
The discourse package to use.
@@ -731,8 +734,6 @@ in
cp -r ${cfg.package}/share/discourse/config.dist/* /run/discourse/config/
cp -r ${cfg.package}/share/discourse/public.dist/* /run/discourse/public/
- cp -r ${cfg.package}/share/discourse/plugins.dist/* /run/discourse/plugins/
- ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} /run/discourse/plugins/") cfg.plugins}
ln -sf /var/lib/discourse/uploads /run/discourse/public/uploads
ln -sf /var/lib/discourse/backups /run/discourse/public/backups
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 5e7c4d5368a4..8258049a4034 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -3,6 +3,8 @@
, util-linux, gawk, imagemagick, optipng, pngquant, libjpeg, jpegoptim
, gifsicle, libpsl, redis, postgresql, which, brotli, procps, rsync
, nodePackages, v8
+
+, plugins ? []
}:
let
@@ -148,6 +150,8 @@ let
mkdir $NIX_BUILD_TOP/tmp_home
export HOME=$NIX_BUILD_TOP/tmp_home
+ ${lib.concatMapStringsSep "\n" (p: "cp -r ${p} plugins/") plugins}
+
export RAILS_ENV=production
bundle exec rake db:migrate >/dev/null
@@ -212,7 +216,6 @@ let
mv config config.dist
mv public public.dist
- mv plugins plugins.dist
runHook postBuild
'';
@@ -230,6 +233,7 @@ let
ln -sf /run/discourse/public $out/share/discourse/public
ln -sf /run/discourse/plugins $out/share/discourse/plugins
ln -sf ${assets} $out/share/discourse/public.dist/assets
+ ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} $out/share/discourse/plugins/") plugins}
runHook postInstall
'';
@@ -244,6 +248,7 @@ let
passthru = {
inherit rubyEnv runtimeEnv runtimeDeps rake;
+ enabledPlugins = plugins;
ruby = rubyEnv.wrappedRuby;
tests = nixosTests.discourse;
};