diff --git a/service-containers-agnostic/apache-tomcat/disnix-appserving-tomcat.nix b/service-containers-agnostic/apache-tomcat/disnix-appserving-tomcat.nix index b245070..1f527f7 100644 --- a/service-containers-agnostic/apache-tomcat/disnix-appserving-tomcat.nix +++ b/service-containers-agnostic/apache-tomcat/disnix-appserving-tomcat.nix @@ -1,4 +1,4 @@ -{tomcatConstructorFun, lib, tomcat, libmatthew_java, dbus_java, DisnixWebService, dysnomia, stateDir}: +{tomcatConstructorFun, lib, tomcat, libmatthew_java, dbus_java, DisnixWebService, dysnomia, stateDir, processManager}: {dbus-daemon, ...}@args: @@ -14,5 +14,8 @@ import ./simple-appserving-tomcat.nix { "${dbus_java}/share/java/dbus.jar" ]; webapps = instanceArgs.webapps or [ tomcat.webapps ] ++ [ DisnixWebService ]; - dependencies = instanceArgs.dependencies or [] ++ [ dbus-daemon.pkg ]; + dependencies = instanceArgs.dependencies or [] + # If we use systemd, we should not add dbus-daemon as a dependency. It causes infinite recursion. + # Moreover, since D-Bus is already enabled for systemd, there is no reason to wait for it anyway. + ++ lib.optional (dbus-daemon != null && processManager != "systemd") dbus-daemon.pkg; }) diff --git a/service-containers-agnostic/constructors.nix b/service-containers-agnostic/constructors.nix index aeace16..1b8eaa7 100644 --- a/service-containers-agnostic/constructors.nix +++ b/service-containers-agnostic/constructors.nix @@ -38,7 +38,7 @@ in }; disnixAppservingTomcat = import ./apache-tomcat/disnix-appserving-tomcat.nix { - inherit stateDir; + inherit stateDir processManager; inherit (pkgs) lib libmatthew_java dbus_java DisnixWebService; tomcat = pkgs.tomcat9; tomcatConstructorFun = constructors.simpleAppservingTomcat;