From 6a707e80e658d0db5c0a173281d7fb2c8e7ebe64 Mon Sep 17 00:00:00 2001 From: SCOTT-HAMILTON Date: Tue, 20 Apr 2021 20:45:44 +0200 Subject: [PATCH] srt-live-server: init at 1.4.8 (#119606) * srt-live-server: init at 1.4.8 * Update pkgs/applications/video/srt-live-server/default.nix * Update pkgs/applications/video/srt-live-server/default.nix Co-authored-by: Sandro --- .../video/srt-live-server/default.nix | 37 +++++++++++ .../fix-insecure-printfs.patch | 61 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 100 insertions(+) create mode 100644 pkgs/applications/video/srt-live-server/default.nix create mode 100644 pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch diff --git a/pkgs/applications/video/srt-live-server/default.nix b/pkgs/applications/video/srt-live-server/default.nix new file mode 100644 index 000000000000..e02d15a595bf --- /dev/null +++ b/pkgs/applications/video/srt-live-server/default.nix @@ -0,0 +1,37 @@ +{ lib +, fetchFromGitHub +, stdenv +, srt +, zlib +}: + +stdenv.mkDerivation rec { + pname = "srt-live-server"; + version = "1.4.8"; + + src = fetchFromGitHub { + owner = "Edward-Wu"; + repo = "srt-live-server"; + rev = "V${version}"; + sha256 = "0x48sxpgxznb1ymx8shw437pcgk76ka5rx0zhn9b3cyi9jlq1yld"; + }; + + patches = [ + # https://github.com/Edward-Wu/srt-live-server/pull/94 + ./fix-insecure-printfs.patch + ]; + + buildInputs = [ srt zlib ]; + + makeFlags = [ + "PREFIX=$(out)" + ]; + + meta = with lib; { + description = "srt live server for low latency"; + license = licenses.mit; + homepage = "https://github.com/Edward-Wu/srt-live-server"; + maintainers = with maintainers; [ shamilton ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch b/pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch new file mode 100644 index 000000000000..8cc85549d13e --- /dev/null +++ b/pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch @@ -0,0 +1,61 @@ +diff --color -ur a/Makefile b/Makefile +--- a/Makefile 2021-04-16 13:02:41.416453040 +0200 ++++ b/Makefile 2021-04-16 13:21:23.020089623 +0200 +@@ -1,3 +1,4 @@ ++PREFIX = /usr/local + SHELL = /bin/sh + MAIN_NAME=sls + CLIENT_NAME=slc +@@ -64,3 +65,16 @@ + rm -f $(OUTPUT_PATH)/*.o + rm -rf $(BIN_PATH)/* + ++install: all ++ @echo installing executable files to ${DESTDIR}${PREFIX}/bin ++ @mkdir -p "${DESTDIR}${PREFIX}/bin" ++ @cp -f ${BIN_PATH}/${MAIN_NAME} "${DESTDIR}${PREFIX}/bin" ++ @chmod 755 "${DESTDIR}${PREFIX}/bin/${MAIN_NAME}" ++ @cp -f ${BIN_PATH}/${CLIENT_NAME} "${DESTDIR}${PREFIX}/bin" ++ @chmod 755 "${DESTDIR}${PREFIX}/bin/${CLIENT_NAME}" ++ ++uninstall: ++ @echo removing executable files from ${DESTDIR}${PREFIX}/bin ++ @rm -f "${DESTDIR}${PREFIX}/bin/${MAIN_NAME}" ++ @rm -f "${DESTDIR}${PREFIX}/bin/${CLIENT_NAME}" ++ +diff --color -ur a/slscore/HttpClient.cpp b/slscore/HttpClient.cpp +--- a/slscore/HttpClient.cpp 2021-04-16 13:02:41.416453040 +0200 ++++ b/slscore/HttpClient.cpp 2021-04-16 13:11:40.343866698 +0200 +@@ -90,7 +90,7 @@ + goto FUNC_END; + } + if (NULL != method && strlen(method) > 0) { +- sprintf(m_http_method, method); ++ strcpy(m_http_method, method); + } + + m_interval = interval; +diff --color -ur a/slscore/SLSLog.cpp b/slscore/SLSLog.cpp +--- a/slscore/SLSLog.cpp 2021-04-16 13:02:41.416453040 +0200 ++++ b/slscore/SLSLog.cpp 2021-04-16 13:08:16.836119519 +0200 +@@ -85,7 +85,7 @@ + vsnprintf (buf , 4095 , fmt , vl); + //sprintf(buf_info, "%s %s: %s\n" , cur_time, LOG_LEVEL_NAME[level], buf); + sprintf(buf_info, "%s:%03d %s %s: %s\n" , cur_time, cur_time_msec, APP_NAME, LOG_LEVEL_NAME[level], buf); +- printf(buf_info); ++ puts(buf_info); + + if (m_log_file) { + fwrite(buf_info, strlen(buf_info), 1, m_log_file); +diff --color -ur a/slscore/SLSSrt.cpp b/slscore/SLSSrt.cpp +--- a/slscore/SLSSrt.cpp 2021-04-16 13:02:41.417452995 +0200 ++++ b/slscore/SLSSrt.cpp 2021-04-16 13:10:11.004957820 +0200 +@@ -124,7 +124,7 @@ + std::map::iterator it; + for(it=map_error.begin(); it!=map_error.end(); ++it) { + sprintf(szBuf, "%d: %s\n", it->first, it->second.c_str()); +- printf(szBuf); ++ puts(szBuf); + } + printf("----------end------------\n"); + map_error.clear(); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5cf60e2c3c84..ccc5d2776efb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8457,6 +8457,8 @@ in srcml = callPackage ../applications/version-management/srcml { }; + srt-live-server = callPackage ../applications/video/srt-live-server { }; + srt-to-vtt-cl = callPackage ../tools/cd-dvd/srt-to-vtt-cl { }; sourcehut = callPackage ../applications/version-management/sourcehut { };