pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / servers / sip / kamailio / default.nix
blob8cb83c60882850dc858d649209bcfa44e84a99fb
1 { callPackage
2 , fetchurl
3 , lib
4 , stdenv
5 , pkg-config
6 , which
7 , bison
8 , flex
9 , json_c
10 , libevent
11 , libxml2
12 , mariadb-connector-c
13 , pcre
14 , gnugrep
15 , gawk
16 , coreutils
17 , gdb
18 , gnused
19 , openssl
22 stdenv.mkDerivation (finalAttrs: {
23   pname = "kamailio";
24   version = "5.7.4";
26   src = fetchurl {
27     url = "https://www.kamailio.org/pub/kamailio/${finalAttrs.version}/src/kamailio-${finalAttrs.version}_src.tar.gz";
28     hash = "sha256-AP9zgGFuoM+gsVmoepfedFTwDOM3RpsRpO6gS/4AMfM=";
29   };
31   buildInputs = [
32     json_c
33     libevent
34     libxml2
35     mariadb-connector-c
36     pcre
37     openssl
38   ];
40   nativeBuildInputs = [
41     pkg-config
42     which
43     bison
44     flex
45   ];
47   modules = [
48     "db_mysql"
49     "dialplan"
50     "jsonrpcc"
51     "json"
52     "lcr"
53     "presence"
54     "presence_conference"
55     "presence_dialoginfo"
56     "presence_mwi"
57     "presence_profile"
58     "presence_reginfo"
59     "presence_xml"
60     "pua"
61     "pua_bla"
62     "pua_dialoginfo"
63     "pua_json"
64     "pua_reginfo"
65     "pua_rpc"
66     "pua_usrloc"
67     "pua_xmpp"
68     "regex"
69     "rls"
70     "tls"
71     "xcap_client"
72     "xcap_server"
73   ];
75   configurePhase = ''
76     runHook preConfigure
78     make PREFIX="$out" include_modules="${lib.concatStringsSep " " finalAttrs.modules}" cfg
80     runHook postConfigure
81   '';
83   preInstall = ''
84     makeFlagsArray+=(PREFIX="$out" "MYSQLCFG=${lib.getDev mariadb-connector-c}/bin/mariadb_config")
85   '';
87   postInstall = ''
88     echo 'MD5="${coreutils}/bin/md5sum"' >> $out/etc/kamailio/kamctlrc
89     echo 'AWK="${gawk}/bin/awk"' >> $out/etc/kamailio/kamctlrc
90     echo 'GDB="${gdb}/bin/gdb"' >> $out/etc/kamailio/kamctlrc
91     echo 'GREP="${gnugrep}/bin/grep "' >> $out/etc/kamailio/kamctlrc
92     echo 'EGREP="${gnugrep}/bin/grep -E"' >> $out/etc/kamailio/kamctlrc
93     echo 'SED="${gnused}/bin/sed"' >> $out/etc/kamailio/kamctlrc
94     echo 'LAST_LINE="${coreutils}/bin/tail -n 1"' >> $out/etc/kamailio/kamctlrc
95     echo 'EXPR="${gnugrep}/bin/expr"' >> $out/etc/kamailio/kamctlrc
96   '';
98   enableParallelBuilding = true;
100   passthru.tests = {
101     kamailio-bin = callPackage ./test-kamailio-bin { };
102   };
104   meta = {
105     description = "Fast and flexible SIP server, proxy, SBC, and load balancer";
106     homepage = "https://www.kamailio.org/";
107     license = lib.licenses.gpl2Only;
108     maintainers = with lib.maintainers; [ mawis ];
109     platforms = lib.platforms.linux;
110   };