diff --git a/default.nix b/default.nix index 223cbda..d53a57b 100644 --- a/default.nix +++ b/default.nix @@ -4,7 +4,43 @@ { pkgs ? import {} }: let inherit (pkgs) stdenv; -in stdenv.mkDerivation { + buildDebug = p: p.overrideAttrs (base: { + dontStrip = true; + env = (base.env or {}) // { + mesonBuildType = "debugoptimized"; + NIX_CFLAGS_COMPILE = "-ggdb -Og -fno-omit-frame-pointer"; + # mesonBuildType = "debug"; + # NIX_CFLAGS_COMPILE = "-g -O0 -fno-omit-frame-pointer"; + }; + }); + sofia_sip' = pkgs.sofia_sip.overrideAttrs (base: { + # sofia_sip linphone fork (2024-08-17) + # it seems to have less buggy DNS (sresolv)? the DNS actually reports errors to the consumer, instead of just never returning. + # more specifically, `outgoing_answer_a` always calls its continuation: that's actually in libsofia-sip-ua/nta/nta.c + src = with pkgs; fetchFromGitLab { + domain = "gitlab.linphone.org"; + owner = "BC/public/external"; + repo = "sofia-sip"; + rev = "b924a57e8eeb24e8b9afc5fd0fb9b51d5993fe5d"; + hash = "sha256-1VbKV+eAJ80IMlubNl7774B7QvLv4hE8SXANDSD9sRU="; + }; + }); + # sofia_sip' = pkgs.sofia_sip.overrideAttrs (base: { + # # sofia_sip tip (2024-08-17) + # src = with pkgs; fetchFromGitHub { + # owner = "freeswitch"; + # repo = "sofia-sip"; + # rev = "0a50b8402fa5b6190a6c91c2e04dfe44a40de02c"; + # hash = "sha256-cxLk0IEwpoxeuVllnZ4/6JqzCd0GVeLyulFj0EYgnek="; + # }; + # }); + # sofia_sip' = pkgs.sofia_sip.overrideAttrs (base: { + # postPatch = (base.postPatch or "") + '' + # substituteInPlace libsofia-sip-ua/sresolv/sofia-resolv/sres.h \ + # --replace 'SRES_MAX_RETRY_COUNT = 6' 'SRES_MAX_RETRY_COUNT = 0' + # ''; + # }); +in buildDebug (stdenv.mkDerivation { pname = "calls"; version = "unstable"; src = ./.; @@ -41,13 +77,6 @@ in stdenv.mkDerivation { libpeas2 libsecret modemmanager - sofia_sip + (buildDebug sofia_sip') ]; - - # build for debug: - dontStrip = true; - env.mesonBuildType = "debugoptimized"; - env.NIX_CFLAGS_COMPILE = "-ggdb -Og -fno-omit-frame-pointer"; - # env.mesonBuildType = "debug"; - # env.NIX_CFLAGS_COMPILE = "-g -O0 -fno-omit-frame-pointer"; -} +})