diff options
Diffstat (limited to 'pkgs/servers/sip/freeswitch/default.nix')
-rw-r--r-- | pkgs/servers/sip/freeswitch/default.nix | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix index a55d1cf14cd..aeedf8b30ae 100644 --- a/pkgs/servers/sip/freeswitch/default.nix +++ b/pkgs/servers/sip/freeswitch/default.nix @@ -1,5 +1,21 @@ +{ fetchFromGitHub, stdenv, lib, pkgconfig, autoreconfHook +, ncurses, gnutls, readline +, openssl, perl, sqlite, libjpeg, speex, pcre +, ldns, libedit, yasm, which, libsndfile, libtiff + +, curl, lua, libmysqlclient, postgresql, libopus, libctb, gsmlib + +, SystemConfiguration + +, modules ? null +}: + let +availableModules = import ./modules.nix { + inherit curl lua libmysqlclient postgresql libopus libctb gsmlib; +}; + # the default list from v1.8.7, except with applications/mod_signalwire also disabled defaultModules = mods: with mods; [ applications.commands @@ -27,6 +43,9 @@ defaultModules = mods: with mods; [ codecs.h26x codecs.opus + databases.mariadb + databases.pgsql + dialplans.asterisk dialplans.xml @@ -57,26 +76,9 @@ defaultModules = mods: with mods; [ xml_int.cdr xml_int.rpc xml_int.scgi -]; - -in +] ++ lib.optionals stdenv.isLinux [ endpoints.gsmopen ]; -{ fetchurl, stdenv, lib, ncurses, curl, pkgconfig, gnutls, readline -, openssl, perl, sqlite, libjpeg, speex, pcre -, ldns, libedit, yasm, which, lua, libopus, libsndfile, libtiff - -, modules ? defaultModules -, postgresql -, enablePostgres ? true - -, SystemConfiguration -}: - -let - -availableModules = import ./modules.nix { inherit curl lua libopus; }; - -enabledModules = modules availableModules; +enabledModules = (if modules != null then modules else defaultModules) availableModules; modulesConf = let lst = builtins.map (mod: mod.path) enabledModules; @@ -86,11 +88,13 @@ modulesConf = let in stdenv.mkDerivation rec { - name = "freeswitch-1.8.7"; - - src = fetchurl { - url = "https://files.freeswitch.org/freeswitch-releases/${name}.tar.bz2"; - sha256 = "0k52mxdfc5w9fdnz8kvfjiwnnjjhnpkirnyrfkhq7bad84m731z4"; + pname = "freeswitch"; + version = "1.10.2"; + src = fetchFromGitHub { + owner = "signalwire"; + repo = pname; + rev = "v${version}"; + sha256 = "1fmrm51zgrasjbmhs0pzb1lyca3ddx0wd35shvxnkjnifi8qd1h7"; }; postPatch = '' patchShebangs libs/libvpx/build/make/rtcd.pl @@ -98,23 +102,21 @@ stdenv.mkDerivation rec { --replace AS=\''${AS} AS=yasm ''; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig autoreconfHook ]; buildInputs = [ openssl ncurses gnutls readline perl libjpeg sqlite pcre speex ldns libedit yasm which libsndfile libtiff ] ++ lib.unique (lib.concatMap (mod: mod.inputs) enabledModules) - ++ lib.optionals enablePostgres [ postgresql ] ++ lib.optionals stdenv.isDarwin [ SystemConfiguration ]; NIX_CFLAGS_COMPILE = "-Wno-error"; hardeningDisable = [ "format" ]; - configureFlags = lib.optionals enablePostgres [ "--enable-core-pgsql-support" ]; - preConfigure = '' + ./bootstrap.sh cp "${modulesConf}" modules.conf ''; @@ -127,7 +129,7 @@ stdenv.mkDerivation rec { description = "Cross-Platform Scalable FREE Multi-Protocol Soft Switch"; homepage = https://freeswitch.org/; license = stdenv.lib.licenses.mpl11; - maintainers = with stdenv.lib.maintainers; [ ]; + maintainers = with stdenv.lib.maintainers; [ misuzu ]; platforms = with stdenv.lib.platforms; unix; }; } |