initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,33 @@
From 4b02c8207adb888d35951bbc1c5b3029594f44c6 Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Wed, 24 Apr 2019 13:56:27 -0400
Subject: [PATCH] Do not force SSP usage
The toolchain may not support SSP, so do not enforce its usage, let
the package user pass the appropriate CFLAGS to enable SSP if needed.
Signed-off-by: Gregory Dymarek <gregd72002@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(rebased against v0.1.0)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
(rebased against v0.6.3)
Signed-off-by: Adam Duskett <Aduskett@gmail.com>
---
configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 257ea8c..ca17a29 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,6 @@ LT_INIT
# Common CFLAGS
CFLAGS="$CFLAGS \
-fPIC \
- -fstack-protector-all \
-fstrict-aliasing \
-ggdb3 \
-pthread \
--
2.20.1
@@ -0,0 +1,146 @@
From c0f075bdee5edabf8f19b68e0880fbd249a89653 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Sat, 3 Jan 2015 15:09:59 +0100
Subject: [PATCH] Add test for -Wunused-but-set-variable
The -Wunused-but-set-variable option does not exist in some old gcc
versions (gcc 4.5.x), so using it unconditionally breaks the build
with such compilers.
This commit introduces the AX_CHECK_COMPILE_FLAG m4 macro taken from
the autoconf-archive
(http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_check_compile_flag.m4),
and uses it to detect if the -Wunused-but-set-variable option is
supported, and only uses it in this case.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(rebased against v0.1.0)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
(rebased against v0.6.3)
Signed-off-by: Adam Duskett <Aduskett@gmail.com>
---
Makefile.am | 1 +
configure.ac | 6 ++-
m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 2 deletions(-)
create mode 100644 m4/ax_check_compile_flag.m4
diff --git a/Makefile.am b/Makefile.am
index f961fdb..3ddbe59 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -151,6 +151,7 @@ janus_CFLAGS = \
-DEVENTDIR=\"$(eventdir)\" \
-DLOGGERDIR=\"$(loggerdir)\" \
-DCONFDIR=\"$(confdir)\" \
+ @GCC_WARN_UNUSED_BUT_SET@ \
$(BORINGSSL_CFLAGS) \
$(NULL)
diff --git a/configure.ac b/configure.ac
index ca17a29..beef91a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13,6 +13,9 @@ AM_SILENT_RULES([yes])
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_CC
+AX_CHECK_COMPILE_FLAG([-Wunused-but-set-variable],
+ [GCC_WARN_UNUSED_BUT_SET=-Wunused-but-set-variable])
+AC_SUBST(GCC_WARN_UNUSED_BUT_SET)
LT_PREREQ([2.2])
LT_INIT
@@ -64,8 +67,7 @@ clang*)
CFLAGS="$CFLAGS \
-Wcast-align \
-Wno-override-init \
- -Wunsafe-loop-optimizations \
- -Wunused-but-set-variable"
+ -Wunsafe-loop-optimizations"
esac
JANUS_VERSION=103
diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
new file mode 100644
index 0000000..51df0c0
--- /dev/null
+++ b/m4/ax_check_compile_flag.m4
@@ -0,0 +1,74 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
+#
+# DESCRIPTION
+#
+# Check whether the given FLAG works with the current language's compiler
+# or gives an error. (Warnings, however, are ignored)
+#
+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
+# success/failure.
+#
+# If EXTRA-FLAGS is defined, it is added to the current language's default
+# flags (e.g. CFLAGS) when the check is done. The check is thus made with
+# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
+# force the compiler to issue an error when a bad flag is given.
+#
+# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
+#
+# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
+# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
+#
+# LICENSE
+#
+# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
+# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception, the respective Autoconf Macro's copyright owner
+# gives unlimited permission to copy, distribute and modify the configure
+# scripts that are the output of Autoconf when processing the Macro. You
+# need not follow the terms of the GNU General Public License when using
+# or distributing such scripts, even though portions of the text of the
+# Macro appear in them. The GNU General Public License (GPL) does govern
+# all other use of the material that constitutes the Autoconf Macro.
+#
+# This special exception to the GPL applies to versions of the Autoconf
+# Macro released by the Autoconf Archive. When you make and distribute a
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
+#serial 3
+
+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
+[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
+ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
+ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
+ [AS_VAR_SET(CACHEVAR,[yes])],
+ [AS_VAR_SET(CACHEVAR,[no])])
+ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
+AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
+ [m4_default([$2], :)],
+ [m4_default([$3], :)])
+AS_VAR_POPDEF([CACHEVAR])dnl
+])dnl AX_CHECK_COMPILE_FLAGS
--
2.20.1
@@ -0,0 +1,357 @@
From ba166e9adebfe5343f826c6a9e02299d35414ffd Mon Sep 17 00:00:00 2001
From: Lorenzo Miniero <lminiero@gmail.com>
Date: Thu, 25 Nov 2021 17:20:53 +0100
Subject: [PATCH] Fix potential Cross-site Scripting (XSS) exploits in demos
(#2817)
[Retrieved (and backported) from:
https://github.com/meetecho/janus-gateway/commit/ba166e9adebfe5343f826c6a9e02299d35414ffd]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
html/audiobridgetest.js | 17 +++++++++++++----
html/recordplaytest.js | 13 +++++++++++--
html/screensharingtest.js | 11 ++++++++++-
html/streamingtest.js | 13 +++++++++++--
html/textroomtest.js | 23 ++++++++++++++---------
html/videocalltest.js | 15 ++++++++++++---
html/videoroomtest.js | 13 +++++++++++--
html/vp9svctest.js | 13 +++++++++++--
8 files changed, 93 insertions(+), 25 deletions(-)
diff --git a/html/audiobridgetest.js b/html/audiobridgetest.js
index 18e1cc1839..f757789708 100644
--- a/html/audiobridgetest.js
+++ b/html/audiobridgetest.js
@@ -178,7 +178,7 @@ $(document).ready(function() {
Janus.debug("Got a list of participants:", list);
for(var f in list) {
var id = list[f]["id"];
- var display = list[f]["display"];
+ var display = escapeXmlTags(list[f]["display"]);
var setup = list[f]["setup"];
var muted = list[f]["muted"];
var spatial = list[f]["spatial_position"];
@@ -222,7 +222,7 @@ $(document).ready(function() {
Janus.debug("Got a list of participants:", list);
for(var f in list) {
var id = list[f]["id"];
- var display = list[f]["display"];
+ var display = escapeXmlTags(list[f]["display"]);
var setup = list[f]["setup"];
var muted = list[f]["muted"];
var spatial = list[f]["spatial_position"];
@@ -267,7 +267,7 @@ $(document).ready(function() {
Janus.debug("Got a list of participants:", list);
for(var f in list) {
var id = list[f]["id"];
- var display = list[f]["display"];
+ var display = escapeXmlTags(list[f]["display"]);
var setup = list[f]["setup"];
var muted = list[f]["muted"];
var spatial = list[f]["spatial_position"];
@@ -429,7 +429,7 @@ function registerUsername() {
return;
}
var register = { request: "join", room: myroom, display: username };
- myusername = username;
+ myusername = escapeXmlTags(username);
mixertest.send({ message: register});
}
}
@@ -448,3 +448,12 @@ function getQueryStringValue(name) {
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
+
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
diff --git a/html/recordplaytest.js b/html/recordplaytest.js
index 74ee7bed95..52b5ccbc4c 100644
--- a/html/recordplaytest.js
+++ b/html/recordplaytest.js
@@ -423,11 +423,11 @@ function updateRecsList() {
Janus.debug("Got a list of available recordings:", list);
for(var mp in list) {
Janus.debug(" >> [" + list[mp]["id"] + "] " + list[mp]["name"] + " (" + list[mp]["date"] + ")");
- $('#recslist').append("<li><a href='#' id='" + list[mp]["id"] + "'>" + list[mp]["name"] + " [" + list[mp]["date"] + "]" + "</a></li>");
+ $('#recslist').append("<li><a href='#' id='" + list[mp]["id"] + "'>" + escapeXmlTags(list[mp]["name"]) + " [" + list[mp]["date"] + "]" + "</a></li>");
}
$('#recslist a').unbind('click').click(function() {
selectedRecording = $(this).attr("id");
- selectedRecordingInfo = $(this).text();
+ selectedRecordingInfo = escapeXmlTags($(this).text());
$('#recset').html($(this).html()).parent().removeClass('open');
$('#play').removeAttr('disabled').click(startPlayout);
return false;
@@ -545,3 +545,12 @@ function getQueryStringValue(name) {
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
+
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
diff --git a/html/screensharingtest.js b/html/screensharingtest.js
index 61eac70f43..c64d8dbd67 100644
--- a/html/screensharingtest.js
+++ b/html/screensharingtest.js
@@ -161,7 +161,7 @@ $(document).ready(function() {
if(event === "joined") {
myid = msg["id"];
$('#session').html(room);
- $('#title').html(msg["description"]);
+ $('#title').html(escapeXmlTags(msg["description"]));
Janus.log("Successfully joined room " + msg["room"] + " with ID " + myid);
if(role === "publisher") {
// This is our session, publish our stream
@@ -514,3 +514,12 @@ function newRemoteFeed(id, display) {
}
});
}
+
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
diff --git a/html/streamingtest.js b/html/streamingtest.js
index 7dd2e1f681..3f9937f11c 100644
--- a/html/streamingtest.js
+++ b/html/streamingtest.js
@@ -323,7 +323,7 @@ function updateStreamsList() {
Janus.debug(list);
for(var mp in list) {
Janus.debug(" >> [" + list[mp]["id"] + "] " + list[mp]["description"] + " (" + list[mp]["type"] + ")");
- $('#streamslist').append("<li><a href='#' id='" + list[mp]["id"] + "'>" + list[mp]["description"] + " (" + list[mp]["type"] + ")" + "</a></li>");
+ $('#streamslist').append("<li><a href='#' id='" + list[mp]["id"] + "'>" + escapeXmlTags(list[mp]["description"]) + " (" + list[mp]["type"] + ")" + "</a></li>");
}
$('#streamslist a').unbind('click').click(function() {
selectedStream = $(this).attr("id");
@@ -345,7 +345,7 @@ function getStreamInfo() {
var body = { request: "info", id: parseInt(selectedStream) || selectedStream };
streaming.send({ message: body, success: function(result) {
if(result && result.info && result.info.metadata) {
- $('#metadata').html(result.info.metadata);
+ $('#metadata').html(escapeXmlTags(result.info.metadata));
$('#info').removeClass('hide').show();
}
}});
@@ -394,6 +394,15 @@ function stopStream() {
simulcastStarted = false;
}
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
+
// Helpers to create Simulcast-related UI, if enabled
function addSimulcastButtons() {
$('#curres').parent().append(
diff --git a/html/textroomtest.js b/html/textroomtest.js
index 082ae44905..3d0697e35a 100644
--- a/html/textroomtest.js
+++ b/html/textroomtest.js
@@ -153,9 +153,7 @@ $(document).ready(function() {
var what = json["textroom"];
if(what === "message") {
// Incoming message: public or private?
- var msg = json["text"];
- msg = msg.replace(new RegExp('<', 'g'), '&lt');
- msg = msg.replace(new RegExp('>', 'g'), '&gt');
+ var msg = escapeXmlTags(json["text"]);
var from = json["from"];
var dateString = getDateString(json["date"]);
var whisper = json["whisper"];
@@ -170,9 +168,7 @@ $(document).ready(function() {
}
} else if(what === "announcement") {
// Room announcement
- var msg = json["text"];
- msg = msg.replace(new RegExp('<', 'g'), '&lt');
- msg = msg.replace(new RegExp('>', 'g'), '&gt');
+ var msg = escapeXmlTags(json["text"]);
var dateString = getDateString(json["date"]);
$('#chatroom').append('<p style="color: purple;">[' + dateString + '] <i>' + msg + '</i>');
$('#chatroom').get(0).scrollTop = $('#chatroom').get(0).scrollHeight;
@@ -180,7 +176,7 @@ $(document).ready(function() {
// Somebody joined
var username = json["username"];
var display = json["display"];
- participants[username] = display ? display : username;
+ participants[username] = escapeXmlTags(display ? display : username);
if(username !== myid && $('#rp' + username).length === 0) {
// Add to the participants list
$('#list').append('<li id="rp' + username + '" class="list-group-item">' + participants[username] + '</li>');
@@ -282,7 +278,7 @@ function registerUsername() {
username: myid,
display: username
};
- myusername = username;
+ myusername = escapeXmlTags(username);
transactions[transaction] = function(response) {
if(response["textroom"] === "error") {
// Something went wrong
@@ -312,7 +308,7 @@ function registerUsername() {
if(response.participants && response.participants.length > 0) {
for(var i in response.participants) {
var p = response.participants[i];
- participants[p.username] = p.display ? p.display : p.username;
+ participants[p.username] = escapeXmlTags(p.display ? p.display : p.username);
if(p.username !== myid && $('#rp' + p.username).length === 0) {
// Add to the participants list
$('#list').append('<li id="rp' + p.username + '" class="list-group-item">' + participants[p.username] + '</li>');
@@ -418,3 +414,12 @@ function getQueryStringValue(name) {
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
+
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
diff --git a/html/videocalltest.js b/html/videocalltest.js
index d1c1ab8d07..18ccbc2c47 100644
--- a/html/videocalltest.js
+++ b/html/videocalltest.js
@@ -148,7 +148,7 @@ $(document).ready(function() {
} else if(result["event"]) {
var event = result["event"];
if(event === 'registered') {
- myusername = result["username"];
+ myusername = escapeXmlTags(result["username"]);
Janus.log("Successfully registered as " + myusername + "!");
$('#youok').removeClass('hide').show().html("Registered as '" + myusername + "'");
// Get a list of available peers, just for fun
@@ -163,7 +163,7 @@ $(document).ready(function() {
bootbox.alert("Waiting for the peer to answer...");
} else if(event === 'incomingcall') {
Janus.log("Incoming call from " + result["username"] + "!");
- yourusername = result["username"];
+ yourusername = escapeXmlTags(result["username"]);
// Notify user
bootbox.hideAll();
incoming = bootbox.dialog({
@@ -213,7 +213,7 @@ $(document).ready(function() {
});
} else if(event === 'accepted') {
bootbox.hideAll();
- var peer = result["username"];
+ var peer = escapeXmlTags(result["username"]);
if(!peer) {
Janus.log("Call started!");
} else {
@@ -598,6 +598,15 @@ function getQueryStringValue(name) {
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
+
// Helpers to create Simulcast-related UI, if enabled
function addSimulcastButtons(temporal) {
$('#curres').parent().append(
diff --git a/html/videoroomtest.js b/html/videoroomtest.js
index 6a566891d8..5a3ade9be9 100644
--- a/html/videoroomtest.js
+++ b/html/videoroomtest.js
@@ -400,7 +400,7 @@ function registerUsername() {
ptype: "publisher",
display: username
};
- myusername = username;
+ myusername = escapeXmlTags(username);
sfutest.send({ message: register });
}
}
@@ -530,7 +530,7 @@ function newRemoteFeed(id, display, audio, video) {
}
}
remoteFeed.rfid = msg["id"];
- remoteFeed.rfdisplay = msg["display"];
+ remoteFeed.rfdisplay = escapeXmlTags(msg["display"]);
if(!remoteFeed.spinner) {
var target = document.getElementById('videoremote'+remoteFeed.rfindex);
remoteFeed.spinner = new Spinner({top:100}).spin(target);
@@ -685,6 +685,15 @@ function getQueryStringValue(name) {
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
+
// Helpers to create Simulcast-related UI, if enabled
function addSimulcastButtons(feed, temporal) {
var index = feed;
diff --git a/html/vp9svctest.js b/html/vp9svctest.js
index eca0239c32..b22ccf3340 100644
--- a/html/vp9svctest.js
+++ b/html/vp9svctest.js
@@ -387,7 +387,7 @@ function registerUsername() {
ptype: "publisher",
display: username
};
- myusername = username;
+ myusername = escapeXmlTags(username);
sfutest.send({ message: register });
}
}
@@ -486,7 +486,7 @@ function newRemoteFeed(id, display, audio, video) {
}
}
remoteFeed.rfid = msg["id"];
- remoteFeed.rfdisplay = msg["display"];
+ remoteFeed.rfdisplay = escapeXmlTags(msg["display"]);
if(!remoteFeed.spinner) {
var target = document.getElementById('videoremote'+remoteFeed.rfindex);
remoteFeed.spinner = new Spinner({top:100}).spin(target);
@@ -630,6 +630,15 @@ function newRemoteFeed(id, display, audio, video) {
});
}
+// Helper to escape XML tags
+function escapeXmlTags(value) {
+ if(value) {
+ var escapedValue = value.replace(new RegExp('<', 'g'), '&lt');
+ escapedValue = escapedValue.replace(new RegExp('>', 'g'), '&gt');
+ return escapedValue;
+ }
+}
+
// Helpers to create SVC-related UI for a new viewer
function addSvcButtons(feed) {
var index = feed;
+99
View File
@@ -0,0 +1,99 @@
menuconfig BR2_PACKAGE_JANUS_GATEWAY
bool "janus-gateway"
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_USE_WCHAR # libnice -> libglib2
depends on BR2_USE_MMU # libnice
depends on !BR2_STATIC_LIBS # dlopen
select BR2_PACKAGE_JANSSON
select BR2_PACKAGE_LIBCONFIG
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_LIBNICE
select BR2_PACKAGE_LIBSRTP
select BR2_PACKAGE_OPENSSL
help
Janus is an open source, general purpose, WebRTC gateway
designed and developed by Meetecho.
https://github.com/meetecho/janus-gateway
if BR2_PACKAGE_JANUS_GATEWAY
config BR2_PACKAGE_JANUS_GATEWAY_DEMOS
bool "HTML demos"
help
Install the demonstration website, as featured on
https://janus.conf.meetecho.com/
comment "plugins"
config BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE
bool "audio bridge"
select BR2_PACKAGE_OPUS
config BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST
bool "echo test"
config BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY
bool "record and play"
config BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY
bool "sip gateway"
select BR2_PACKAGE_SOFIA_SIP
config BR2_PACKAGE_JANUS_GATEWAY_STREAMING
bool "streaming"
# SO_REUSEPORT
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
comment "streaming plugin needs a toolchain w/ headers >= 3.9"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
config BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM
bool "text room"
config BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL
bool "video call"
config BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM
bool "video room"
config BR2_PACKAGE_JANUS_GATEWAY_VOICE_MAIL
bool "voice mail"
select BR2_PACKAGE_LIBOGG
comment "transports"
config BR2_PACKAGE_JANUS_GATEWAY_MQTT
bool "MQTT"
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_PAHO_MQTT_C
comment "MQTT transport needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ
bool "RabbitMQ"
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_RABBITMQ_C
comment "RabbitMQ transport needs a toolchain w/ dynamic library, threads"
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_JANUS_GATEWAY_REST
bool "REST (HTTP/HTTPS)"
select BR2_PACKAGE_LIBMICROHTTPD
config BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS
bool "Unix Sockets"
default y
config BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS
bool "WebSockets"
select BR2_PACKAGE_LIBWEBSOCKETS
endif
comment "janus-gateway needs a toolchain w/ dynamic library, threads, wchar"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
+3
View File
@@ -0,0 +1,3 @@
# Locally computed
sha256 21e2fc7dee4b20ed8d749a69577eccd961b0bfe5b863d42f39ddfcd2af903718 janus-gateway-0.10.10.tar.gz
sha256 91d04c97fa1da3fcd28205873276358aafc071c5b00a9ea8c49dd06d487a9dc6 COPYING
+134
View File
@@ -0,0 +1,134 @@
################################################################################
#
# janus-gateway
#
################################################################################
JANUS_GATEWAY_VERSION = 0.10.10
JANUS_GATEWAY_SITE = $(call github,meetecho,janus-gateway,v$(JANUS_GATEWAY_VERSION))
JANUS_GATEWAY_LICENSE = GPL-3.0 with OpenSSL exception
JANUS_GATEWAY_LICENSE_FILES = COPYING
JANUS_GATEWAY_CPE_ID_VENDOR = meetecho
JANUS_GATEWAY_CPE_ID_PRODUCT = janus
# 0003-Fix-potential-Cross-site-Scripting-XSS-exploits-in-demos.patch
JANUS_GATEWAY_IGNORE_CVES += CVE-2021-4020
# ding-libs provides the ini_config library
JANUS_GATEWAY_DEPENDENCIES = host-pkgconf jansson libnice \
libsrtp host-gengetopt libglib2 openssl libconfig \
$(if $(BR2_PACKAGE_LIBOGG),libogg)
# Straight out of the repository, no ./configure, and we also patch
# configure.ac.
JANUS_GATEWAY_AUTORECONF = YES
JANUS_GATEWAY_CONF_OPTS = \
--disable-data-channels \
--disable-sample-event-handler
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_DEMOS),)
define JANUS_GATEWAY_REMOVE_DEMOS
$(RM) -fr $(TARGET_DIR)/usr/share/janus/demos/
endef
JANUS_GATEWAY_POST_INSTALL_TARGET_HOOKS += JANUS_GATEWAY_REMOVE_DEMOS
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_AUDIO_BRIDGE),y)
JANUS_GATEWAY_DEPENDENCIES += opus
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-audiobridge
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-audiobridge
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_ECHO_TEST),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-echotest
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-echotest
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_RECORDPLAY),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-recordplay
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-recordplay
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_SIP_GATEWAY),y)
JANUS_GATEWAY_DEPENDENCIES += sofia-sip
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-sip
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-sip
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_STREAMING),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-streaming
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-streaming
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_TEXT_ROOM),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-textroom
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-textroom
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_VIDEO_CALL),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-videocall
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-videocall
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_VIDEO_ROOM),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-videoroom
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-videoroom
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_VOICE_MAIL),y)
JANUS_GATEWAY_CONF_OPTS += --enable-plugin-voicemail
else
JANUS_GATEWAY_CONF_OPTS += --disable-plugin-voicemail
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_MQTT),y)
JANUS_GATEWAY_DEPENDENCIES += paho-mqtt-c
JANUS_GATEWAY_CONF_OPTS += --enable-mqtt
else
JANUS_GATEWAY_CONF_OPTS += --disable-mqtt
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_RABBITMQ),y)
JANUS_GATEWAY_DEPENDENCIES += rabbitmq-c
JANUS_GATEWAY_CONF_OPTS += --enable-rabbitmq
else
JANUS_GATEWAY_CONF_OPTS += --disable-rabbitmq
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_REST),y)
JANUS_GATEWAY_DEPENDENCIES += libmicrohttpd
JANUS_GATEWAY_CONF_OPTS += --enable-rest
else
JANUS_GATEWAY_CONF_OPTS += --disable-rest
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_UNIX_SOCKETS),y)
JANUS_GATEWAY_CONF_OPTS += --enable-unix-sockets
else
JANUS_GATEWAY_CONF_OPTS += --disable-unix-sockets
endif
ifeq ($(BR2_PACKAGE_JANUS_GATEWAY_WEBSOCKETS),y)
JANUS_GATEWAY_DEPENDENCIES += libwebsockets
JANUS_GATEWAY_CONF_OPTS += --enable-websockets
else
JANUS_GATEWAY_CONF_OPTS += --disable-websockets
endif
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
JANUS_GATEWAY_DEPENDENCIES += systemd
JANUS_GATEWAY_CONF_OPTS += --enable-systemd-sockets
else
JANUS_GATEWAY_CONF_OPTS += --disable-systemd-sockets
endif
$(eval $(autotools-package))