about summary refs log tree commit diff
path: root/pkgs/servers/sip
diff options
context:
space:
mode:
authorMarkus Kowalewski <markus.kowalewski@gmail.com>2023-11-23 16:21:30 +0100
committerMarkus Kowalewski <markus.kowalewski@gmail.com>2023-11-23 16:52:25 +0100
commitc1bf4079c0fe8b53281ac7cfa128a122e28df2e6 (patch)
tree113fb6339d140b9dd972e554ed3a9eb1a24c38c3 /pkgs/servers/sip
parentff3b4803547ab5377d4c0b482b7c5333edee6d00 (diff)
kamailio: refactor expression
* remove pkgs from input
* do not override build and install phase (not needed)
* fix src ULR for autoupdates
* enable parallel builds
* move some packages to nativeBuildInputs
Diffstat (limited to 'pkgs/servers/sip')
-rw-r--r--pkgs/servers/sip/kamailio/default.nix118
1 files changed, 75 insertions, 43 deletions
diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix
index 2db991ceacac7..22260a43b5738 100644
--- a/pkgs/servers/sip/kamailio/default.nix
+++ b/pkgs/servers/sip/kamailio/default.nix
@@ -1,76 +1,108 @@
 { callPackage
 , fetchurl
 , lib
-, pkgs
 , stdenv
+, pkg-config
+, which
+, bison
+, flex
+, json_c
+, libevent
+, libxml2
+, mariadb-connector-c
+, pcre
+, gnugrep
+, gawk
+, coreutils
+, gdb
+, gnused
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kamailio";
   version = "5.7.2";
 
-  meta = {
-    description = "Fast and flexible SIP server, proxy, SBC, and load balancer";
-    homepage = "https://www.kamailio.org/";
-    license = lib.licenses.gpl2Only;
-    maintainers = with lib.maintainers; [ mawis ];
-    platforms = lib.platforms.linux;
-  };
-
   src = fetchurl {
-    url = "https://www.kamailio.org/pub/kamailio/5.7.2/src/kamailio-${finalAttrs.version}_src.tar.gz";
+    url = "https://www.kamailio.org/pub/kamailio/${finalAttrs.version}/src/kamailio-${finalAttrs.version}_src.tar.gz";
     hash = "sha256-csmgZ9qNb6kg03N9mM1/ZsMh+Ay+EHbi1aOStCJQMSI=";
   };
 
-  buildInputs = with pkgs; [
-    bison
-    flex
-    gnugrep
-    json_c.dev
-    libevent.dev
-    libxml2.dev
-    mariadb-connector-c.dev
-    pcre.dev
+  buildInputs = [
+    json_c
+    libevent
+    libxml2
+    mariadb-connector-c
+    pcre
   ];
 
-  nativeBuildInputs = with pkgs; [
+  nativeBuildInputs = [
     pkg-config
     which
+    bison
+    flex
   ];
 
-  configurePhase = ''
+  configurePhase = let
+    modules = [
+      "db_mysql"
+      "dialplan"
+      "jsonrpcc"
+      "json"
+      "lcr"
+      "presence"
+      "presence_conference"
+      "presence_dialoginfo"
+      "presence_mwi"
+      "presence_profile"
+      "presence_reginfo"
+      "presence_xml"
+      "pua"
+      "pua_bla"
+      "pua_dialoginfo"
+      "pua_json"
+      "pua_reginfo"
+      "pua_rpc"
+      "pua_usrloc"
+      "pua_xmpp"
+      "regex"
+      "rls"
+      "xcap_client"
+      "xcap_server"
+    ];
+   in ''
     runHook preConfigure
 
-    make PREFIX="$out" include_modules="db_mysql dialplan jsonrpcc json lcr presence presence_conference presence_dialoginfo presence_mwi presence_profile presence_reginfo presence_xml pua pua_bla pua_dialoginfo pua_json pua_reginfo pua_rpc pua_usrloc pua_xmpp regex rls xcap_client xcap_server" cfg
+    make PREFIX="$out" include_modules="${lib.concatStringsSep " " modules}" cfg
 
     runHook postConfigure
   '';
 
-  buildPhase = ''
-    runHook preBuild
-
-    make MYSQLCFG=${pkgs.mariadb-connector-c.dev}/bin/mariadb_config all
-
-    runHook postBuild
+  preInstall = ''
+    makeFlagsArray+=(PREFIX="$out" "MYSQLCFG=${lib.getDev mariadb-connector-c}/bin/mariadb_config")
   '';
 
-  installPhase = ''
-    runHook preInstall
-
-    make MYSQLCFG=${pkgs.mariadb-connector-c.dev}/bin/mariadb_config install
-    echo 'MD5="${pkgs.coreutils}/bin/md5sum"' >> $out/etc/kamailio/kamctlrc
-    echo 'AWK="${pkgs.gawk}/bin/awk"' >> $out/etc/kamailio/kamctlrc
-    echo 'GDB="${pkgs.gdb}/bin/gdb"' >> $out/etc/kamailio/kamctlrc
-    echo 'GREP="${pkgs.gnugrep}/bin/grep "' >> $out/etc/kamailio/kamctlrc
-    echo 'EGREP="${pkgs.gnugrep}/bin/grep -E"' >> $out/etc/kamailio/kamctlrc
-    echo 'SED="${pkgs.gnused}/bin/sed"' >> $out/etc/kamailio/kamctlrc
-    echo 'LAST_LINE="${pkgs.coreutils}/bin/tail -n 1"' >> $out/etc/kamailio/kamctlrc
-    echo 'EXPR="${pkgs.gnugrep}/bin/expr"' >> $out/etc/kamailio/kamctlrc
-
-    runHook postInstall
+  postInstall = ''
+    echo 'MD5="${coreutils}/bin/md5sum"' >> $out/etc/kamailio/kamctlrc
+    echo 'AWK="${gawk}/bin/awk"' >> $out/etc/kamailio/kamctlrc
+    echo 'GDB="${gdb}/bin/gdb"' >> $out/etc/kamailio/kamctlrc
+    echo 'GREP="${gnugrep}/bin/grep "' >> $out/etc/kamailio/kamctlrc
+    echo 'EGREP="${gnugrep}/bin/grep -E"' >> $out/etc/kamailio/kamctlrc
+    echo 'SED="${gnused}/bin/sed"' >> $out/etc/kamailio/kamctlrc
+    echo 'LAST_LINE="${coreutils}/bin/tail -n 1"' >> $out/etc/kamailio/kamctlrc
+    echo 'EXPR="${gnugrep}/bin/expr"' >> $out/etc/kamailio/kamctlrc
   '';
 
+  enableParallelBuilding = true;
+
   passthru.tests = {
-    kamailio-bin = callPackage ./test-kamailio-bin {};
+    kamailio-bin = callPackage ./test-kamailio-bin { };
+  };
+
+  meta = {
+    description = "Fast and flexible SIP server, proxy, SBC, and load balancer";
+    homepage = "https://www.kamailio.org/";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ mawis ];
+    platforms = lib.platforms.linux;
   };
 })