Skip to content

Commit

Permalink
mobilizon: 3.2.0 -> 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
erictapen authored and Yt committed Dec 10, 2023
1 parent 60274ea commit db3bd72
Show file tree
Hide file tree
Showing 6 changed files with 125 additions and 285 deletions.
16 changes: 16 additions & 0 deletions pkgs/servers/mobilizon/cacerts_get.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/config/config.exs b/config/config.exs
index d75b2e10a..d46ebffd2 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -128,7 +128,9 @@ config :mobilizon, Mobilizon.Web.Email.Mailer,
tls_options: [
verify: :verify_peer,
versions: [:"tlsv1.2", :"tlsv1.3"],
- cacerts: :public_key.cacerts_get(),
+ cacerts: if System.get_env("SSL_CERT_FILE") != nil and :public_key.cacerts_load(System.get_env("SSL_CERT_FILE")) == :ok do
+ :public_key.cacerts_get()
+ end,
server_name_indication: ~c"localhost",
depth: 99
],

15 changes: 4 additions & 11 deletions pkgs/servers/mobilizon/common.nix
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
{ fetchFromGitLab, applyPatches, fetchpatch }: rec {
{ fetchFromGitLab, applyPatches }: rec {

pname = "mobilizon";
version = "3.2.0";
version = "4.0.0";

src = applyPatches {
src = fetchFromGitLab {
domain = "framagit.org";
owner = "framasoft";
repo = pname;
rev = version;
sha256 = "sha256-zgHR0taMMMwAoJEJr5s1rmSwJh31+qAfPQW9DSDuC8A=";
sha256 = "sha256-PslcIS+HjGTx8UYhb7BG2OgLXfIWHDouuiogA/rq/7M=";
};
patches = [
# See https://framagit.org/framasoft/mobilizon/-/merge_requests/1452
(fetchpatch {
url = "https://framagit.org/framasoft/mobilizon/-/commit/856d236b141c96705e1211e780e3f0e8950bb48e.patch";
sha256 = "sha256-uEPvoTPVWHdg/KPWMG/Ck2qUjC+EUO3hyZnzpFxuoL0=";
})
(fetchpatch {
url = "https://framagit.org/framasoft/mobilizon/-/commit/3936eb4cc5125b838b73adc7e49ca6ce3b2f73ce.patch";
sha256 = "sha256-Srq691J1DbG3d26AKYZxkiMg0DfM33o3AllZpCjG2PQ=";
})
./cacerts_get.patch
];
};
}
48 changes: 19 additions & 29 deletions pkgs/servers/mobilizon/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ in
mixRelease rec {
inherit (common) pname version src;

# See https://github.com/whitfin/cachex/issues/205
# This circumvents a startup error for now
stripDebug = false;

nativeBuildInputs = [ git cmake ];

mixNixDeps = import ./mix.nix {
Expand All @@ -35,15 +31,15 @@ mixRelease rec {
fast_html = prev.fast_html.override {
nativeBuildInputs = [ cmake ];
};
ex_cldr = prev.ex_cldr.overrideAttrs (old: rec {
version = "2.37.2";
ex_cldr = prev.ex_cldr.overrideAttrs (old: {
# We have to use the GitHub sources, as it otherwise tries to download
# the locales at build time.
src = fetchFromGitHub {
owner = "elixir-cldr";
repo = "cldr";
rev = "v${version}";
sha256 = "sha256-dDOQzLIi3zjb9xPyR7Baul96i9Mb3CFHUA+AWSexrk4=";
rev = "v${old.version}";
sha256 = assert old.version == "2.37.5";
"sha256-T5Qvuo+xPwpgBsqHNZYnTCA4loToeBn1LKTMsDcCdYs=";
};
postInstall = ''
cp $src/priv/cldr/locales/* $out/lib/erlang/lib/ex_cldr-${old.version}/priv/cldr/locales/
Expand All @@ -55,7 +51,7 @@ mixRelease rec {
});

# The remainder are Git dependencies (and their deps) that are not supported by mix2nix currently.
web_push_encryption = buildMix {
web_push_encryption = buildMix rec {
name = "web_push_encryption";
version = "0.3.1";
src = fetchFromGitHub {
Expand All @@ -77,40 +73,36 @@ mixRelease rec {
};
beamDeps = with final; [ mix_test_watch ex_doc timex ];
};
exkismet = buildMix rec {
name = "exkismet";
version = "0.0.1";
rajska = buildMix rec {
name = "rajska";
version = "1.3.3";
src = fetchFromGitHub {
owner = "tcitworld";
repo = name;
rev = "8b5485fde00fafbde20f315bec387a77f7358334";
sha256 = "sha256-ttgCWoBKU7VTjZJBhZNtqVF4kN7psBr/qOeR65MbTqw=";
rev = "0c036448e261e8be6a512581c592fadf48982d84";
sha256 = "sha256-4pfply1vTAIT2Xvm3kONmrCK05xKfXFvcb8EKoSCXBE=";
};
beamDeps = with final; [ httpoison ];
beamDeps = with final; [ ex_doc credo absinthe excoveralls hammer mock ];
};
rajska = buildMix rec {
name = "rajska";
version = "0.0.1";
exkismet = buildMix rec {
name = "exkismet";
version = "0.0.3";
src = fetchFromGitHub {
owner = "tcitworld";
repo = name;
rev = "0c036448e261e8be6a512581c592fadf48982d84";
sha256 = "sha256-4pfply1vTAIT2Xvm3kONmrCK05xKfXFvcb8EKoSCXBE=";
rev = "8b5485fde00fafbde20f315bec387a77f7358334";
sha256 = "sha256-ttgCWoBKU7VTjZJBhZNtqVF4kN7psBr/qOeR65MbTqw=";
};
beamDeps = with final; [ httpoison absinthe ];
beamDeps = with final; [ httpoison ex_doc credo doctor dialyxir ];
};

});
};

preConfigure = ''
export LANG=C.UTF-8 # fix elixir locale warning
'';

# Install the compiled js part
preBuild =
''
cp -a "${mobilizon-frontend}/libexec/mobilizon/deps/priv/static" ./priv
cp -a "${mobilizon-frontend}/static" ./priv
chmod 770 -R ./priv
'';

Expand All @@ -123,9 +115,7 @@ mixRelease rec {
updateScript = writeShellScriptBin "update.sh" ''
set -eou pipefail
SRC=$(nix path-info .#mobilizon.src)
${mix2nix}/bin/mix2nix $SRC/mix.lock > pkgs/servers/mobilizon/mix.nix
cat $SRC/js/package.json > pkgs/servers/mobilizon/package.json
${mix2nix}/bin/mix2nix '${src}/mix.lock' > pkgs/servers/mobilizon/mix.nix
'';
elixirPackage = beamPackages.elixir;
};
Expand Down
33 changes: 7 additions & 26 deletions pkgs/servers/mobilizon/frontend.nix
Original file line number Diff line number Diff line change
@@ -1,38 +1,19 @@
{ lib, callPackage, mkYarnPackage, fetchYarnDeps, imagemagick }:
{ lib, callPackage, buildNpmPackage, imagemagick }:

let
common = callPackage ./common.nix { };
in
mkYarnPackage rec {
src = "${common.src}/js";
buildNpmPackage {
inherit (common) pname version src;

offlineCache = fetchYarnDeps {
yarnLock = src + "/yarn.lock";
sha256 = "sha256-VkJ6vBt9EFoQVMWMV8FhPJBHcLJDDfOxd+NLb+DZy3U=";
};

packageJSON = ./package.json;

# Somehow $out/deps/mobilizon/node_modules ends up only containing nothing
# more than a .bin directory otherwise.
yarnPostBuild = ''
rm -rf $out/deps/mobilizon/node_modules
ln -s $out/node_modules $out/deps/mobilizon/node_modules
'';

buildPhase = ''
runHook preBuild
npmDepsHash = "sha256-z/xWumL1wri63cGGMHMBq6WVDe81bp8tILsZa53a7FM=";

yarn run build
nativeBuildInputs = [ imagemagick ];

runHook postBuild
postInstall = ''
cp -r priv/static $out/static
'';

doCheck = true;
checkPhase = "yarn run test";

nativeBuildInputs = [ imagemagick ];

meta = with lib; {
description = "Frontend for the Mobilizon server";
homepage = "https://joinmobilizon.org/";
Expand Down
Loading

0 comments on commit db3bd72

Please sign in to comment.