aboutsummaryrefslogtreecommitdiff
path: root/nixops/modules/websites/tools/mastodon/mastodon.nix
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2019-04-02 09:28:52 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2019-04-02 09:28:52 +0200
commit7f6bd78f988381187bc1a75397dd332ef54263e9 (patch)
treee3758cc91ad301915212fb19acd92531140e17a3 /nixops/modules/websites/tools/mastodon/mastodon.nix
parenta4993193703e14c4af10dd0ea84829594a6ee30b (diff)
downloadNix-7f6bd78f988381187bc1a75397dd332ef54263e9.tar.gz
Nix-7f6bd78f988381187bc1a75397dd332ef54263e9.tar.zst
Nix-7f6bd78f988381187bc1a75397dd332ef54263e9.zip
Upgrade mastodon to 2.7.4
Diffstat (limited to 'nixops/modules/websites/tools/mastodon/mastodon.nix')
-rw-r--r--nixops/modules/websites/tools/mastodon/mastodon.nix47
1 files changed, 21 insertions, 26 deletions
diff --git a/nixops/modules/websites/tools/mastodon/mastodon.nix b/nixops/modules/websites/tools/mastodon/mastodon.nix
index bc4014d..d4e437a 100644
--- a/nixops/modules/websites/tools/mastodon/mastodon.nix
+++ b/nixops/modules/websites/tools/mastodon/mastodon.nix
@@ -1,17 +1,24 @@
1{ env, ruby_2_5, bundlerEnv, defaultGemConfig, fetchedGithub, stdenv, writeText, pkgs }: 1{ env, ruby_2_6, bundlerEnv, defaultGemConfig, yarn2nixPackage, fetchedGithub, stdenv, writeText, pkgs }:
2let 2let
3 varDir = "/var/lib/mastodon_immae"; 3 varDir = "/var/lib/mastodon_immae";
4 socketsDir = "/run/mastodon"; 4 socketsDir = "/run/mastodon";
5 gems = bundlerEnv { 5 gems = bundlerEnv {
6 name = "mastodon-env"; 6 name = "mastodon-env";
7 # https://git.immae.eu/mantisbt/view.php?id=131 7 ruby = ruby_2_6;
8 ruby = ruby_2_5.overrideAttrs(old: {
9 postInstall = builtins.replaceStrings [" --destdir $GEM_HOME"] [""] old.postInstall;
10 });
11 gemset = ./gemset.nix; 8 gemset = ./gemset.nix;
12 gemdir = (fetchedGithub ./mastodon.json).src; 9 gemdir = (fetchedGithub ./mastodon.json).src;
13 groups = [ "default" "production" "test" "development" ]; 10 groups = [ "default" "production" "test" "development" ];
14 gemConfig = defaultGemConfig // { 11 gemConfig = defaultGemConfig // {
12 redis-rack = attrs: {
13 preBuild = ''
14 sed -i 's!s\.files.*!!' redis-rack.gemspec
15 '';
16 };
17 tzinfo = attrs: {
18 preBuild = ''
19 sed -i 's!s\.files.*!!' tzinfo.gemspec
20 '';
21 };
15 cld3 = attrs: { 22 cld3 = attrs: {
16 buildInputs = with pkgs; [ protobuf protobufc pkgconfig ]; 23 buildInputs = with pkgs; [ protobuf protobufc pkgconfig ];
17 }; 24 };
@@ -25,10 +32,15 @@ let
25 }; 32 };
26 yarnModules = let 33 yarnModules = let
27 info = fetchedGithub ./mastodon.json; 34 info = fetchedGithub ./mastodon.json;
35 packagejson = pkgs.runCommand "package.json" { buildInputs = [ pkgs.jq ]; } ''
36 cat ${info.src}/package.json | jq -r '.version = "${info.version}"' > $out
37 '';
28 in 38 in
29 pkgs.yarn2nix.mkYarnModules { 39 yarn2nixPackage.mkYarnModules rec {
30 name = "mastodon-yarn-modules"; 40 name = "mastodon-yarn";
31 packageJSON = "${info.src}/package.json"; 41 pname = name;
42 version = info.version;
43 packageJSON = packagejson;
32 yarnLock = "${info.src}/yarn.lock"; 44 yarnLock = "${info.src}/yarn.lock";
33 yarnNix = ./yarn-packages.nix; 45 yarnNix = ./yarn-packages.nix;
34 pkgConfig = { 46 pkgConfig = {
@@ -37,23 +49,6 @@ let
37 npx node-gyp rebuild > build_log.txt 2>&1 || true 49 npx node-gyp rebuild > build_log.txt 2>&1 || true
38 ''; 50 '';
39 }; 51 };
40 node-zopfli = {
41 postInstall = ''
42 npx node-pre-gyp install --fallback-to-build
43 '';
44 };
45 node-sass = {
46 buildInputs = with pkgs; [ libsass python ];
47 postInstall = let
48 nodeHeaders = pkgs.fetchurl {
49 url = "https://nodejs.org/download/release/v${pkgs.nodejs.version}/node-v${pkgs.nodejs.version}-headers.tar.gz";
50 sha256 = "16f20ya3ys6w5w6y6l4536f7jrgk4gz46bf71w1r1xxb26a54m32";
51 };
52 in
53 ''
54 node scripts/build.js --tarball=${nodeHeaders}
55 '';
56 };
57 }; 52 };
58 }; 53 };
59 mastodon = stdenv.mkDerivation (fetchedGithub ./mastodon.json // rec { 54 mastodon = stdenv.mkDerivation (fetchedGithub ./mastodon.json // rec {
@@ -61,7 +56,7 @@ let
61 cp -a . $out 56 cp -a . $out
62 cp -a ${yarnModules}/node_modules $out 57 cp -a ${yarnModules}/node_modules $out
63 ''; 58 '';
64 buildInputs = [ yarnModules gems ]; 59 buildInputs = [ yarnModules ];
65 }); 60 });
66 config = writeText "mastodon_environment" '' 61 config = writeText "mastodon_environment" ''
67 REDIS_HOST=${env.redis.host} 62 REDIS_HOST=${env.redis.host}