Skip to content

Commit

Permalink
www/janus: New port
Browse files Browse the repository at this point in the history
Janus is an open source, general purpose,
WebRTC gateway designed and
developed by Meetecho

PR: 219444
  • Loading branch information
vanillahsu authored and jsm222 committed Aug 8, 2021
1 parent 835981d commit 31811bb
Show file tree
Hide file tree
Showing 9 changed files with 315 additions and 0 deletions.
1 change: 1 addition & 0 deletions www/Makefile
Expand Up @@ -260,6 +260,7 @@
SUBDIR += ilias6
SUBDIR += interchange
SUBDIR += itop
SUBDIR += janus
SUBDIR += jericho-html
SUBDIR += jesred
SUBDIR += jetty8
Expand Down
64 changes: 64 additions & 0 deletions www/janus/Makefile
@@ -0,0 +1,64 @@
PORTNAME= janus
DISTVERSIONPREFIX= v
DISTVERSION= 0.11.3
CATEGORIES= www

MAINTAINER= vanilla@FreeBSD.org
COMMENT= WebRTC gateway

LICENSE= GPLv3

BUILD_DEPENDS= gengetopt>0:devel/gengetopt
LIB_DEPENDS= libsrtp2.so:net/libsrtp2 \
libusrsctp.so:net/libusrsctp \
libjansson.so:devel/jansson \
libnice.so:net-im/libnice \
libmicrohttpd.so:www/libmicrohttpd \
libwebsockets.so:net/libwebsockets \
libcurl.so:ftp/curl \
libopus.so:audio/opus \
libsofia-sip-ua.so:net/sofia-sip \
libogg.so:audio/libogg \
libjansson.so:devel/jansson \
libnice.so:net-im/libnice \
libmicrohttpd.so:www/libmicrohttpd \
libwebsockets.so:net/libwebsockets \
libconfig.so:devel/libconfig

USES= libtool pkgconfig autoreconf gmake localbase gnome ssl
USE_GNOME= glib20
USE_GITHUB= yes
GH_ACCOUNT= meetecho
GH_PROJECT= janus-gateway
USE_RC_SUBR= janus
CONFIGURE_ARGS+= --disable-mqtt \
--disable-rabbitmq \
--enable-json-logger \
--enable-data-channels
INSTALL_TARGET=install-strip
CFLAGS+= -I${OPENSSLINC} -I${LOCALBASE}/include/nice
LDFLAGS+= -L${OPENSSLLIB} -lcrypto -lssl -L${LOCALBASE} -lnice
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
SUB_FILES= pkg-message

OPTIONS_SUB= yes
OPTIONS_DEFINE= JAVASCRIPT LUA NANOMSG RABBITMQ POSTPROCESSING
JAVASCRIPT_DESC= JavaScript scripting language support
#MQTT_DESC= MQTT integration
NANOMSG_DESC= Nanomsg integration
RABBITMQ_DESC= RabbitMQ integration
POSTPROCESSING_DESC= Post processing integration
JAVASCRIPT_LIB_DEPENDS= libduktape.so:lang/duktape-lib
NANOMSG_LIB_DEPENDS= libnanomsg.so:net/nanomsg
RABBITMQ_LIB_DEPENDS= librabbitmq.so:net/rabbitmq-c
JAVASCRIPT_CONFIGURE_ENABLE= plugin-duktape
NANOMSG_CONFIGURE_ENABLE= nanomsg
RABBITMQ_CONFIGURE_ENABLE= rabbitmq
LUA_CONFIGURE_ENABLE= plugin-lua
LUA_USES= lua
LUA_CONFIGURE_ENV= LUA_CFLAGS="-I${LUA_INCDIR}" LUA_LIBS="-L${LUA_LIBDIR} -llua-${LUA_VER}"
POSTPROCESSING_CONFIGURE_ENABLE= post-processing
POSTPROCESSING_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions www/janus/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1625046487
SHA256 (meetecho-janus-gateway-v0.11.3_GH0.tar.gz) = bfe4bb0f5c1db7ca1ab7e294b377d604b21e5187a35a64ed93536e2da9f0e9db
SIZE (meetecho-janus-gateway-v0.11.3_GH0.tar.gz) = 7080692
28 changes: 28 additions & 0 deletions www/janus/files/janus.in
@@ -0,0 +1,28 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: janus
# REQUIRE: NETWORKING syslogd
# BEFORE: DAEMON
# KEYWORD: shutdown

# Add the following lines to /etc/rc.conf to enable janus:
# janus_enable="YES"
# janus_flags="<set as needed>"

. /etc/rc.subr

name=janus
rcvar=janus_enable

: ${janus_enable="NO"}
: ${janus_config_dir="%%PREFIX%%/etc/${name}"}
: ${janus_conf="${janus_config_dir}/$name.jcfg"}

required_files="${janus_conf}"
command="%%PREFIX%%/bin/janus"
command_args="-D -f -o -F ${janus_config_dir} -C ${janus_conf} -b -L /var/log/janus.log"

load_rc_config $name
run_rc_command "$1"
11 changes: 11 additions & 0 deletions www/janus/files/patch-configure.ac
@@ -0,0 +1,11 @@
--- configure.ac.orig 2021-06-15 12:25:22 UTC
+++ configure.ac
@@ -363,8 +363,6 @@ freebsd*)
libconfig
nice
jansson >= $jansson_version
- libssl >= $ssl_version
- libcrypto
zlib"
esac
PKG_CHECK_MODULES([JANUS],"$PKGCHECKMODULES")
10 changes: 10 additions & 0 deletions www/janus/files/patch-janus.c
@@ -0,0 +1,10 @@
--- janus.c.orig 2021-08-02 14:04:13 UTC
+++ janus.c
@@ -4282,6 +4282,7 @@ gint main(int argc, char *argv[])
if (!event) {
JANUS_LOG(LOG_ERR, "\tCouldn't load logger plugin '%s': %s\n", eventent->d_name, dlerror());
} else {
+ dlerror();
create_l *create = (create_l*) dlsym(event, "create");
const char *dlsym_error = dlerror();
if (dlsym_error) {
8 changes: 8 additions & 0 deletions www/janus/files/pkg-message.in
@@ -0,0 +1,8 @@
[
{ type: install
message: <<EOM
You must set ws_ip and/or wss_ip in janus.transport.websockets.jcfg
to IPv4 addresses if you need ipv4 for websockets.
EOM
}
]
4 changes: 4 additions & 0 deletions www/janus/pkg-descr
@@ -0,0 +1,4 @@
Janus is an open source, general purpose, WebRTC gateway designed and
developed by Meetecho

WWW: https://github.com/meetecho/janus-gateway
186 changes: 186 additions & 0 deletions www/janus/pkg-plist
@@ -0,0 +1,186 @@
bin/janus
bin/janus-cfgconv
%%POSTPROCESSING%%bin/janus-pp-rec
%%POSTPROCESSING%%bin/mjr2pcap
@sample %%ETCDIR%%/janus.eventhandler.gelfevh.jcfg.sample
%%NANOMSG%%@sample %%ETCDIR%%/janus.eventhandler.nanomsgevh.jcfg.sample
%%RABBITMQ%%@sample %%ETCDIR%%/janus.eventhandler.rabbitmqevh.jcfg.sample
%%JAVASCRIPT%%@sample %%ETCDIR%%/janus.plugin.duktape.jcfg.sample
%%NANOMSG%%@sample %%ETCDIR%%/janus.transport.nanomsg.jcfg.sample
%%RABBITMQ%%@sample %%ETCDIR%%/janus.transport.rabbitmq.jcfg.sample
@sample %%ETCDIR%%/janus.eventhandler.sampleevh.jcfg.sample
@sample %%ETCDIR%%/janus.eventhandler.wsevh.jcfg.sample
@sample %%ETCDIR%%/janus.jcfg.sample
@sample %%ETCDIR%%/janus.logger.jsonlog.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.audiobridge.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.echotest.jcfg.sample
%%LUA%%@sample %%ETCDIR%%/janus.plugin.lua.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.nosip.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.recordplay.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.sip.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.streaming.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.textroom.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.videocall.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.videoroom.jcfg.sample
@sample %%ETCDIR%%/janus.plugin.voicemail.jcfg.sample
@sample %%ETCDIR%%/janus.transport.http.jcfg.sample
@sample %%ETCDIR%%/janus.transport.pfunix.jcfg.sample
@sample %%ETCDIR%%/janus.transport.websockets.jcfg.sample
include/janus/apierror.h
include/janus/config.h
include/janus/debug.h
include/janus/events/eventhandler.h
include/janus/ip-utils.h
include/janus/log.h
include/janus/loggers/logger.h
include/janus/mutex.h
include/janus/plugins/plugin.h
include/janus/record.h
include/janus/refcount.h
include/janus/rtcp.h
include/janus/rtp.h
include/janus/rtpsrtp.h
include/janus/sdp-utils.h
include/janus/text2pcap.h
include/janus/transports/transport.h
include/janus/utils.h
lib/janus/events/libjanus_gelfevh.so
lib/janus/events/libjanus_gelfevh.so.0
lib/janus/events/libjanus_gelfevh.so.0.0.0
%%NANOMSG%%lib/janus/events/libjanus_nanomsgevh.so
%%NANOMSG%%lib/janus/events/libjanus_nanomsgevh.so.0
%%NANOMSG%%lib/janus/events/libjanus_nanomsgevh.so.0.0.0
%%RABBITMQ%%lib/janus/events/libjanus_rabbitmqevh.so
%%RABBITMQ%%lib/janus/events/libjanus_rabbitmqevh.so.0
%%RABBITMQ%%lib/janus/events/libjanus_rabbitmqevh.so.0.0.0
lib/janus/events/libjanus_sampleevh.so
lib/janus/events/libjanus_sampleevh.so.0
lib/janus/events/libjanus_sampleevh.so.0.0.0
lib/janus/events/libjanus_wsevh.so
lib/janus/events/libjanus_wsevh.so.0
lib/janus/events/libjanus_wsevh.so.0.0.0
lib/janus/loggers/libjanus_jsonlog.so
lib/janus/loggers/libjanus_jsonlog.so.0
lib/janus/loggers/libjanus_jsonlog.so.0.0.0
lib/janus/plugins/libjanus_audiobridge.so
lib/janus/plugins/libjanus_audiobridge.so.0
lib/janus/plugins/libjanus_audiobridge.so.0.0.0
lib/janus/plugins/libjanus_echotest.so
lib/janus/plugins/libjanus_echotest.so.0
lib/janus/plugins/libjanus_echotest.so.0.0.0
%%JAVASCRIPT%%lib/janus/plugins/libjanus_duktape.so
%%JAVASCRIPT%%lib/janus/plugins/libjanus_duktape.so.0
%%JAVASCRIPT%%lib/janus/plugins/libjanus_duktape.so.0.0.0
%%LUA%%lib/janus/plugins/libjanus_lua.so
%%LUA%%lib/janus/plugins/libjanus_lua.so.0
%%LUA%%lib/janus/plugins/libjanus_lua.so.0.0.0
lib/janus/plugins/libjanus_nosip.so
lib/janus/plugins/libjanus_nosip.so.0
lib/janus/plugins/libjanus_nosip.so.0.0.0
lib/janus/plugins/libjanus_recordplay.so
lib/janus/plugins/libjanus_recordplay.so.0
lib/janus/plugins/libjanus_recordplay.so.0.0.0
lib/janus/plugins/libjanus_sip.so
lib/janus/plugins/libjanus_sip.so.0
lib/janus/plugins/libjanus_sip.so.0.0.0
lib/janus/plugins/libjanus_streaming.so
lib/janus/plugins/libjanus_streaming.so.0
lib/janus/plugins/libjanus_streaming.so.0.0.0
lib/janus/plugins/libjanus_textroom.so
lib/janus/plugins/libjanus_textroom.so.0
lib/janus/plugins/libjanus_textroom.so.0.0.0
lib/janus/plugins/libjanus_videocall.so
lib/janus/plugins/libjanus_videocall.so.0
lib/janus/plugins/libjanus_videocall.so.0.0.0
lib/janus/plugins/libjanus_videoroom.so
lib/janus/plugins/libjanus_videoroom.so.0
lib/janus/plugins/libjanus_videoroom.so.0.0.0
lib/janus/plugins/libjanus_voicemail.so
lib/janus/plugins/libjanus_voicemail.so.0
lib/janus/plugins/libjanus_voicemail.so.0.0.0
lib/janus/transports/libjanus_http.so
lib/janus/transports/libjanus_http.so.0
lib/janus/transports/libjanus_http.so.0.0.0
%%NANOMSG%%lib/janus/transports/libjanus_nanomsg.so
%%NANOMSG%%lib/janus/transports/libjanus_nanomsg.so.0
%%NANOMSG%%lib/janus/transports/libjanus_nanomsg.so.0.0.0
lib/janus/transports/libjanus_pfunix.so
lib/janus/transports/libjanus_pfunix.so.0
lib/janus/transports/libjanus_pfunix.so.0.0.0
%%RABBITMQ%%lib/janus/transports/libjanus_rabbitmq.so
%%RABBITMQ%%lib/janus/transports/libjanus_rabbitmq.so.0
%%RABBITMQ%%lib/janus/transports/libjanus_rabbitmq.so.0.0.0
lib/janus/transports/libjanus_websockets.so
lib/janus/transports/libjanus_websockets.so.0
lib/janus/transports/libjanus_websockets.so.0.0.0
man/man1/janus-cfgconv.1.gz
%%POSTPROCESSING%%man/man1/janus-pp-rec.1.gz
man/man1/janus.1.gz
%%POSTPROCESSING%%man/man1/mjr2pcap.1.gz
share/doc/janus-gateway/README.md
%%DATADIR%%/demos/admin.html
%%DATADIR%%/demos/admin.js
%%DATADIR%%/demos/audiobridgetest.html
%%DATADIR%%/demos/audiobridgetest.js
%%DATADIR%%/demos/canvas.html
%%DATADIR%%/demos/canvas.js
%%DATADIR%%/demos/citeus.html
%%DATADIR%%/demos/css/demo.css
%%DATADIR%%/demos/demos.html
%%DATADIR%%/demos/devicetest.html
%%DATADIR%%/demos/devicetest.js
%%DATADIR%%/demos/docs/index.html
%%DATADIR%%/demos/e2etest.html
%%DATADIR%%/demos/e2etest.js
%%DATADIR%%/demos/echotest.html
%%DATADIR%%/demos/echotest.js
%%DATADIR%%/demos/favicon.ico
%%DATADIR%%/demos/footer.html
%%DATADIR%%/demos/index.html
%%DATADIR%%/demos/janus-logo.png
%%DATADIR%%/demos/janus-logo-small.png
%%DATADIR%%/demos/janus.js
%%DATADIR%%/demos/meetecho-logo.png
%%DATADIR%%/demos/multiopus.html
%%DATADIR%%/demos/multiopus.js
%%DATADIR%%/demos/navbar.html
%%DATADIR%%/demos/nosiptest.html
%%DATADIR%%/demos/nosiptest.js
%%DATADIR%%/demos/recordplaytest.html
%%DATADIR%%/demos/recordplaytest.js
%%DATADIR%%/demos/screensharingtest.html
%%DATADIR%%/demos/screensharingtest.js
%%DATADIR%%/demos/siptest.html
%%DATADIR%%/demos/siptest.js
%%DATADIR%%/demos/streamingtest.html
%%DATADIR%%/demos/streamingtest.js
%%DATADIR%%/demos/support.html
%%DATADIR%%/demos/surround/ChID-BLITS-EBU.mp4
%%DATADIR%%/demos/surround/ChID-BLITS-EBU.txt
%%DATADIR%%/demos/textroomtest.html
%%DATADIR%%/demos/textroomtest.js
%%DATADIR%%/demos/up_arrow.png
%%DATADIR%%/demos/videocalltest.html
%%DATADIR%%/demos/videocalltest.js
%%DATADIR%%/demos/videoroomtest.html
%%DATADIR%%/demos/videoroomtest.js
%%DATADIR%%/demos/voicemailtest.html
%%DATADIR%%/demos/voicemailtest.js
%%DATADIR%%/demos/vp9svctest.html
%%DATADIR%%/demos/vp9svctest.js
%%JAVASCRIPT%%%%DATADIR%%/duktape/echotest.js
%%JAVASCRIPT%%%%DATADIR%%/duktape/janus-sdp.js
%%DATADIR%%/javascript/janus.js
%%LUA%%%%DATADIR%%/lua/echotest.lua
%%LUA%%%%DATADIR%%/lua/janus-logger.lua
%%LUA%%%%DATADIR%%/lua/janus-sdp.lua
%%LUA%%%%DATADIR%%/lua/videoroom.lua
%%DATADIR%%/recordings/1234.nfo
%%DATADIR%%/recordings/rec-sample-audio.mjr
%%DATADIR%%/recordings/rec-sample-video.mjr
%%DATADIR%%/streams/music.mulaw
%%DATADIR%%/streams/radio.alaw
%%DATADIR%%/streams/test_gstreamer.sh
%%DATADIR%%/streams/test_gstreamer_1.sh
@dir %%DATADIR%%/duktape
@dir %%DATADIR%%/lua

0 comments on commit 31811bb

Please sign in to comment.