From 67c19d64cb00485ef32dd9a89f6987cd20e76d01 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 17 Jun 2025 11:16:13 +0200 Subject: ejabberd: ensure PREVIOUS.LOG exists This fixes an issue causing ejabberd to abort with following error message: ** FATAL ** {error,{"Cannot rename disk_log file",latest_log, "/var/lib/ejabberd/PREVIOUS.LOG", {log_header,trans_log,"4.3","4.20.4.1", ejabberd@localhost, {1665,261856,453060}}, {file_error,"/var/lib/ejabberd/PREVIOUS.LOG",erofs}}} --- modules/ejabberd/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/ejabberd/default.nix b/modules/ejabberd/default.nix index f2da590..9607741 100644 --- a/modules/ejabberd/default.nix +++ b/modules/ejabberd/default.nix @@ -142,6 +142,17 @@ in { ExecStartPre = [ "${pkgs.coreutils}/bin/ln -s \${CREDENTIALS_DIRECTORY} /tmp/credentials" "${gen-dhparam} ${cfg.stateDir}/dhfile" + (pkgs.writeDash "ejabberd-ensure-PREVIOUS.LOG" '' + set -efu + cd ${cfg.stateDir} + if ! test -e PREVIOUS.LOG; then + if test -f LATEST.LOG; then + ${pkgs.coreutils}/bin/ln LATEST.LOG PREVIOUS.LOG + else + ${pkgs.coreutils}/bin/touch PREVIOUS.LOG + fi + fi + '') ]; ExecStart = "${cfg.pkgs.ejabberd}/bin/ejabberdctl foreground"; ExecStop = [ -- cgit v1.2.3