about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/srt
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/srt')
-rw-r--r--nixpkgs/pkgs/development/libraries/srt/default.nix51
-rw-r--r--nixpkgs/pkgs/development/libraries/srt/no-msvc-compat-headers.patch10
2 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/srt/default.nix b/nixpkgs/pkgs/development/libraries/srt/default.nix
new file mode 100644
index 000000000000..5ba8039ccff8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/srt/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, openssl
+, windows
+}:
+
+stdenv.mkDerivation rec {
+  pname = "srt";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "Haivision";
+    repo = "srt";
+    rev = "v${version}";
+    sha256 = "sha256-HW5l26k9w4F6IJrtiahU/8/CPY6M/cKn8AgESsntC6A=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.hostPlatform.isMinGW [
+    windows.mingw_w64_pthreads
+  ];
+
+  patches = lib.optionals stdenv.hostPlatform.isMinGW [
+    ./no-msvc-compat-headers.patch
+  ];
+
+  cmakeFlags = [
+    # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
+    # (setting it to an absolute path causes include files to go to $out/$out/include,
+    #  because the absolute path is interpreted with root at $out).
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DENABLE_SHARED=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+    # TODO Remove this when https://github.com/Haivision/srt/issues/538 is fixed and available to nixpkgs
+    # Workaround for the fact that srt incorrectly disables GNUInstallDirs when LIBDIR is specified,
+    # see https://github.com/NixOS/nixpkgs/pull/54463#discussion_r249878330
+    "-UCMAKE_INSTALL_LIBDIR"
+  ];
+
+  meta = with lib; {
+    description = "Secure, Reliable, Transport";
+    homepage = "https://github.com/Haivision/srt";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/srt/no-msvc-compat-headers.patch b/nixpkgs/pkgs/development/libraries/srt/no-msvc-compat-headers.patch
new file mode 100644
index 000000000000..ffededc7d54e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/srt/no-msvc-compat-headers.patch
@@ -0,0 +1,10 @@
+--- srt-1.3.2/common/filelist_win32.maf.orig	2018-06-15 21:44:11.000000000 +0200
++++ srt-1.3.2/common/filelist_win32.maf	2018-09-25 20:26:36.903688700 +0200
+@@ -4,7 +4,6 @@
+ #
+ # These are included by platform_sys.h header contained in ../srtcore/filelist.maf
+ #
+-win/unistd.h
+ 
+ SOURCES
+ win_time.cpp