summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranz Pletz <fpletz@fnordicwalking.de>2020-01-01 20:25:43 +0000
committerGitHub <noreply@github.com>2020-01-01 20:25:43 +0000
commit427217ac1f569417a6313464f9a5acc8fa6ce151 (patch)
treede9ec7fb87529954e63fe3c80456d86c7cb160b0
parent26f3d45b5f3d43dac330dd1fc527f90718ee7704 (diff)
parent96f4563f1e6eb7f773c50f413afdbea737355db9 (diff)
downloadnixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.tar
nixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.tar.gz
nixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.tar.bz2
nixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.tar.lz
nixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.tar.xz
nixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.tar.zst
nixpkgs-427217ac1f569417a6313464f9a5acc8fa6ce151.zip
Merge pull request #76786 from misuzu/freeswitch-gsmopen
freeswitch: fix gsmopen build and enable by default for linux
-rw-r--r--pkgs/development/libraries/gsmlib/default.nix19
-rw-r--r--pkgs/development/libraries/libctb/default.nix23
-rw-r--r--pkgs/development/libraries/libctb/include-kbhit.patch13
-rw-r--r--pkgs/servers/sip/freeswitch/default.nix37
-rw-r--r--pkgs/servers/sip/freeswitch/modules.nix4
-rw-r--r--pkgs/top-level/all-packages.nix4
6 files changed, 79 insertions, 21 deletions
diff --git a/pkgs/development/libraries/gsmlib/default.nix b/pkgs/development/libraries/gsmlib/default.nix
new file mode 100644
index 00000000000..88bec83e624
--- /dev/null
+++ b/pkgs/development/libraries/gsmlib/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+stdenv.mkDerivation rec {
+  pname = "gsmlib";
+  version = "unstable-2017-10-06";
+  src = fetchFromGitHub {
+    owner = "x-logLT";
+    repo = "gsmlib";
+    rev = "4f794b14450132f81673f7d3570c5a859aecf7ae";
+    sha256 = "16v8aj914ac1ipf14a867ljib3gy7fhzd9ypxnsg9l0zi8mm3ml5";
+  };
+  nativeBuildInputs = [ autoreconfHook ];
+  meta = with stdenv.lib; {
+    description = "Library to access GSM mobile phones through GSM modems";
+    homepage = "https://github.com/x-logLT/gsmlib";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.misuzu ];
+  };
+}
diff --git a/pkgs/development/libraries/libctb/default.nix b/pkgs/development/libraries/libctb/default.nix
new file mode 100644
index 00000000000..161c7c98c63
--- /dev/null
+++ b/pkgs/development/libraries/libctb/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  pname = "libctb";
+  version = "0.16";
+  src = fetchurl {
+    url = "https://iftools.com/download/files/legacy/${pname}-${version}.tar.gz";
+    sha256 = "027wh89d0qyly3d9m6rg4x7x1gqz3y3cnxlgk0k8xgygcrm05c0w";
+  };
+  patches = [
+    ./include-kbhit.patch
+  ];
+  sourceRoot = "${pname}-${version}/build";
+  makeFlags = [
+    "prefix=$(out)"
+  ];
+  meta = with stdenv.lib; {
+    description = "Communications toolbox";
+    homepage = "https://iftools.com";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.misuzu ];
+  };
+}
diff --git a/pkgs/development/libraries/libctb/include-kbhit.patch b/pkgs/development/libraries/libctb/include-kbhit.patch
new file mode 100644
index 00000000000..76b4e38fadb
--- /dev/null
+++ b/pkgs/development/libraries/libctb/include-kbhit.patch
@@ -0,0 +1,13 @@
+diff --git a/GNUmakefile b/GNUmakefile
+index e39a687..026f9c4 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -140,7 +140,7 @@ all: ../lib/libctb$(LIBFLAG)$(GPIBFLAG)-0.16.a ../lib/libctb$(LIBFLAG)$(GPIBFLAG
+
+ install: install_ctb_lib install_ctb_dll
+ 	$(INSTALL) -d $(DESTDIR)$(prefix)/include/ctb-0.16
+-	for f in ctb.h fifo.h getopt.h $(GPIBINC) iobase.h linux/serport.h linux/timer.h portscan.h serport.h serportx.h timer.h; do \
++	for f in ctb.h fifo.h getopt.h $(GPIBINC) iobase.h kbhit.h linux/serport.h linux/timer.h portscan.h serport.h serportx.h timer.h; do \
+ 	if test ! -d $(DESTDIR)$(prefix)/include/ctb-0.16/`dirname $$f` ; then \
+ 	$(INSTALL) -d $(DESTDIR)$(prefix)/include/ctb-0.16/`dirname $$f`; \
+ 	fi; \
diff --git a/pkgs/servers/sip/freeswitch/default.nix b/pkgs/servers/sip/freeswitch/default.nix
index a55d1cf14cd..5f066adcccc 100644
--- a/pkgs/servers/sip/freeswitch/default.nix
+++ b/pkgs/servers/sip/freeswitch/default.nix
@@ -1,5 +1,19 @@
+{ fetchurl, stdenv, lib, ncurses, curl, pkgconfig, gnutls, readline
+, openssl, perl, sqlite, libjpeg, speex, pcre
+, ldns, libedit, yasm, which, lua, libopus, libsndfile, libtiff
+, libctb, gsmlib
+
+, modules ? null
+, postgresql
+, enablePostgres ? true
+
+, SystemConfiguration
+}:
+
 let
 
+availableModules = import ./modules.nix { inherit curl lua libopus libctb gsmlib; };
+
 # the default list from v1.8.7, except with applications/mod_signalwire also disabled
 defaultModules = mods: with mods; [
   applications.commands
@@ -57,26 +71,9 @@ defaultModules = mods: with mods; [
   xml_int.cdr
   xml_int.rpc
   xml_int.scgi
-];
-
-in
-
-{ 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; };
+] ++ lib.optionals stdenv.isLinux [ endpoints.gsmopen ];
 
-enabledModules = modules availableModules;
+enabledModules = (if modules != null then modules else defaultModules) availableModules;
 
 modulesConf = let
   lst = builtins.map (mod: mod.path) enabledModules;
@@ -127,7 +124,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;
   };
 }
diff --git a/pkgs/servers/sip/freeswitch/modules.nix b/pkgs/servers/sip/freeswitch/modules.nix
index aed30e467e8..2d8f541a3c2 100644
--- a/pkgs/servers/sip/freeswitch/modules.nix
+++ b/pkgs/servers/sip/freeswitch/modules.nix
@@ -1,4 +1,6 @@
 { libopus
+, libctb
+, gsmlib
 , lua
 , curl
 }:
@@ -114,7 +116,7 @@ in
   endpoints = {
     alsa = mk "endpoints/mod_alsa" [];
     dingaling = mk "endpoints/mod_dingaling" [];
-    gsmopen = mk "endpoints/mod_gsmopen" [];
+    gsmopen = mk "endpoints/mod_gsmopen" [ gsmlib libctb ];
     h323 = mk "endpoints/mod_h323" [];
     khomp = mk "endpoints/mod_khomp" [];
     loopback = mk "endpoints/mod_loopback" [];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 396762142c5..daae3e616f9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3798,6 +3798,8 @@ in
 
   gsmartcontrol = callPackage ../tools/misc/gsmartcontrol { };
 
+  gsmlib = callPackage ../development/libraries/gsmlib { };
+
   gssdp = callPackage ../development/libraries/gssdp { };
 
   gt5 = callPackage ../tools/system/gt5 { };
@@ -12217,6 +12219,8 @@ in
 
   libcredis = callPackage ../development/libraries/libcredis { };
 
+  libctb = callPackage ../development/libraries/libctb { };
+
   libctemplate = callPackage ../development/libraries/libctemplate { };
 
   libcouchbase = callPackage ../development/libraries/libcouchbase { };