diff --git a/pkgs/by-name/ba/baresip/fix-modules-path.patch b/pkgs/by-name/ba/baresip/fix-modules-path.patch new file mode 100644 index 000000000000..b02c830057c2 --- /dev/null +++ b/pkgs/by-name/ba/baresip/fix-modules-path.patch @@ -0,0 +1,29 @@ +commit 46479c52695cc5f8c01370fd2594468666c45c8e +Author: rnhmjoj +Date: Sun Aug 3 00:18:47 2025 +0200 + + Fix the modules path at build time + + The location of the modules is determined by reading the `module_path` + setting, which is set to "$out/lib/baresip/modules" when the + configuration file is generated during the first run. If the package is + updated and the store path changes, baresip breaks completely, forcing + the user to manually fix the configuration. + + This patch fixes the location of the modules at build time, ignoring the + `module_path` setting, to avoid this issue. + +diff --git a/src/module.c b/src/module.c +index 9f2135c6..b62d0bdd 100644 +--- a/src/module.c ++++ b/src/module.c +@@ -141,8 +141,7 @@ int module_init(const struct conf *conf) + if (!conf) + return EINVAL; + +- if (conf_get(conf, "module_path", &path)) +- pl_set_str(&path, "."); ++ pl_set_str(&path, MOD_PATH); + + err = conf_apply(conf, "module", module_handler, &path); + if (err) diff --git a/pkgs/by-name/ba/baresip/package.nix b/pkgs/by-name/ba/baresip/package.nix index f841e562f5fd..4c4a0210156e 100644 --- a/pkgs/by-name/ba/baresip/package.nix +++ b/pkgs/by-name/ba/baresip/package.nix @@ -29,21 +29,29 @@ zlib, dbusSupport ? true, }: + stdenv.mkDerivation rec { version = "3.24.0"; pname = "baresip"; + src = fetchFromGitHub { owner = "baresip"; repo = "baresip"; rev = "v${version}"; hash = "sha256-32XyMblHF+ST+TpIbdyPFdRtWnIugYMr4lYZnfeFm/c="; }; + + patches = [ + ./fix-modules-path.patch + ]; + prePatch = '' substituteInPlace cmake/FindGTK3.cmake --replace-fail GTK3_CFLAGS_OTHER "" '' + lib.optionalString (!dbusSupport) '' substituteInPlace cmake/modules.cmake --replace-fail 'list(APPEND MODULES ctrl_dbus)' "" ''; + nativeBuildInputs = [ cmake pkg-config