From c1bf4079c0fe8b53281ac7cfa128a122e28df2e6 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 23 Nov 2023 16:21:30 +0100 Subject: [PATCH 1/5] 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 --- pkgs/servers/sip/kamailio/default.nix | 148 ++++++++++++++++---------- 1 file changed, 90 insertions(+), 58 deletions(-) diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix index 2db991ceacac..22260a43b573 100644 --- a/pkgs/servers/sip/kamailio/default.nix +++ b/pkgs/servers/sip/kamailio/default.nix @@ -1,14 +1,103 @@ { 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"; + src = fetchurl { + url = "https://www.kamailio.org/pub/kamailio/${finalAttrs.version}/src/kamailio-${finalAttrs.version}_src.tar.gz"; + hash = "sha256-csmgZ9qNb6kg03N9mM1/ZsMh+Ay+EHbi1aOStCJQMSI="; + }; + + buildInputs = [ + json_c + libevent + libxml2 + mariadb-connector-c + pcre + ]; + + nativeBuildInputs = [ + pkg-config + which + bison + flex + ]; + + 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="${lib.concatStringsSep " " modules}" cfg + + runHook postConfigure + ''; + + preInstall = '' + makeFlagsArray+=(PREFIX="$out" "MYSQLCFG=${lib.getDev mariadb-connector-c}/bin/mariadb_config") + ''; + + 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 { }; + }; + meta = { description = "Fast and flexible SIP server, proxy, SBC, and load balancer"; homepage = "https://www.kamailio.org/"; @@ -16,61 +105,4 @@ stdenv.mkDerivation (finalAttrs: { 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"; - 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 - ]; - - nativeBuildInputs = with pkgs; [ - pkg-config - which - ]; - - configurePhase = '' - 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 - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - - make MYSQLCFG=${pkgs.mariadb-connector-c.dev}/bin/mariadb_config all - - runHook postBuild - ''; - - 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 - ''; - - passthru.tests = { - kamailio-bin = callPackage ./test-kamailio-bin {}; - }; }) From c59b67fde03e497104030ff877650adc01866979 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 23 Nov 2023 16:26:59 +0100 Subject: [PATCH 2/5] kamailio: 5.7.2 -> 5.7.3 --- pkgs/servers/sip/kamailio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix index 22260a43b573..5fd4a63281c0 100644 --- a/pkgs/servers/sip/kamailio/default.nix +++ b/pkgs/servers/sip/kamailio/default.nix @@ -20,11 +20,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "kamailio"; - version = "5.7.2"; + version = "5.7.3"; src = fetchurl { url = "https://www.kamailio.org/pub/kamailio/${finalAttrs.version}/src/kamailio-${finalAttrs.version}_src.tar.gz"; - hash = "sha256-csmgZ9qNb6kg03N9mM1/ZsMh+Ay+EHbi1aOStCJQMSI="; + hash = "sha256-x6YgsDl05OBNQZ4Iancf0Leo4mnz1pwZocZghaSY/Yw="; }; buildInputs = [ From 9f3a21f0e9f2b23efce8af4a44ae968446ebcb91 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Thu, 23 Nov 2023 16:36:56 +0100 Subject: [PATCH 3/5] kamailio: make "modules" customiziable by overrideAttrs --- pkgs/servers/sip/kamailio/default.nix | 60 ++++++++++++++------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix index 5fd4a63281c0..11a7a3346d6f 100644 --- a/pkgs/servers/sip/kamailio/default.nix +++ b/pkgs/servers/sip/kamailio/default.nix @@ -16,6 +16,7 @@ , coreutils , gdb , gnused +, openssl }: stdenv.mkDerivation (finalAttrs: { @@ -33,6 +34,7 @@ stdenv.mkDerivation (finalAttrs: { libxml2 mariadb-connector-c pcre + openssl ]; nativeBuildInputs = [ @@ -42,37 +44,37 @@ stdenv.mkDerivation (finalAttrs: { flex ]; - 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 '' + 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" + ]; + + configurePhase = '' runHook preConfigure - make PREFIX="$out" include_modules="${lib.concatStringsSep " " modules}" cfg + make PREFIX="$out" include_modules="${lib.concatStringsSep " " finalAttrs.modules}" cfg runHook postConfigure ''; From 231b889d799e2350a52edef0ef23a10e1fc8bf16 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Sun, 26 Nov 2023 13:35:04 +0100 Subject: [PATCH 4/5] kamailio: make "modules" customiziable by overrideAttrs --- pkgs/servers/sip/kamailio/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix index 11a7a3346d6f..129bc9f9b515 100644 --- a/pkgs/servers/sip/kamailio/default.nix +++ b/pkgs/servers/sip/kamailio/default.nix @@ -16,7 +16,6 @@ , coreutils , gdb , gnused -, openssl }: stdenv.mkDerivation (finalAttrs: { @@ -34,7 +33,6 @@ stdenv.mkDerivation (finalAttrs: { libxml2 mariadb-connector-c pcre - openssl ]; nativeBuildInputs = [ From 3b8d3c6c6179453b53398d5ec4c1a3693fae38d0 Mon Sep 17 00:00:00 2001 From: Markus Kowalewski Date: Sun, 26 Nov 2023 13:35:47 +0100 Subject: [PATCH 5/5] kamailio: add TLS support --- pkgs/servers/sip/kamailio/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/servers/sip/kamailio/default.nix b/pkgs/servers/sip/kamailio/default.nix index 129bc9f9b515..2732216cc15f 100644 --- a/pkgs/servers/sip/kamailio/default.nix +++ b/pkgs/servers/sip/kamailio/default.nix @@ -16,6 +16,7 @@ , coreutils , gdb , gnused +, openssl }: stdenv.mkDerivation (finalAttrs: { @@ -33,6 +34,7 @@ stdenv.mkDerivation (finalAttrs: { libxml2 mariadb-connector-c pcre + openssl ]; nativeBuildInputs = [ @@ -65,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: { "pua_xmpp" "regex" "rls" + "tls" "xcap_client" "xcap_server" ];