janus-gateway: new package
authorGregory Dymarek <gregd72002@gmail.com>
Fri, 12 Dec 2014 15:42:47 +0000 (15:42 +0000)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 1 Jan 2015 15:38:52 +0000 (16:38 +0100)
[Thomas:
  - Rename patch to the proper naming convention, and add a
    description to it.
  - Add mandatory dependency to OpenSSL.
  - Make the dependency on libwebsock optional.
  - Remove select of host-gengetopt, since this package no longer has
    a menuconfig option.
  - Add missing toolchain option dependencies inherited from selected
    packages.
  - Add proper Config.in help text.
  - Fix the .mk comment header to the proper format.
  - Use the github function and remove the unneeded SITE_METHOD
    variable.
  - Add support for optional Opus and Libogg support.
  - Remove hash file, since the package is fetched from github.]

Signed-off-by: Gregory Dymarek <gregd72002@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/janus-gateway/0001-disable-ssp.patch [new file with mode: 0644]
package/janus-gateway/Config.in [new file with mode: 0644]
package/janus-gateway/janus-gateway.mk [new file with mode: 0644]

index 43b2b61ff7d49ae04999126faef3aebcaaa3002e..a4f5d8bf5f6a5245e31b569f71020a617d6cf023 100644 (file)
@@ -1060,6 +1060,7 @@ endif
        source "package/iptraf-ng/Config.in"
        source "package/iputils/Config.in"
        source "package/iw/Config.in"
+       source "package/janus-gateway/Config.in"
        source "package/kismet/Config.in"
        source "package/knock/Config.in"
        source "package/leafnode2/Config.in"
diff --git a/package/janus-gateway/0001-disable-ssp.patch b/package/janus-gateway/0001-disable-ssp.patch
new file mode 100644 (file)
index 0000000..9ef184a
--- /dev/null
@@ -0,0 +1,20 @@
+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>
+
+diff -rupN janus-gateway-master.orig/Makefile.am janus-gateway-master/Makefile.am
+--- janus-gateway-master.orig/Makefile.am      2014-11-27 14:36:31.000000000 +0000
++++ janus-gateway-master/Makefile.am   2014-12-01 16:39:50.551935028 +0000
+@@ -14,7 +14,7 @@ AM_CFLAGS += -Wredundant-decls  # sophia
+ # some fairly big refactoring though, which can wait.
+ # AM_CFLAGS += -Wshadow -Wstrict-aliasing=2
+-AM_CFLAGS += -fstack-protector-all -g -ggdb -fPIC -rdynamic
++AM_CFLAGS += -g -ggdb -fPIC -rdynamic
+ # FIXME: make docs work with distcheck
+ DISTCHECK_CONFIGURE_FLAGS = --disable-docs --enable-post-processing
diff --git a/package/janus-gateway/Config.in b/package/janus-gateway/Config.in
new file mode 100644 (file)
index 0000000..6ba5f6a
--- /dev/null
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_JANUS_GATEWAY
+       bool "janus-gateway"
+       select BR2_PACKAGE_LIBMICROHTTPD
+       select BR2_PACKAGE_JANSSON
+       select BR2_PACKAGE_LIBNICE
+       select BR2_PACKAGE_SOFIA_SIP
+       select BR2_PACKAGE_LIBSRTP
+       select BR2_PACKAGE_OPENSSL
+       select BR2_PACKAGE_DING_LIBS
+       depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, libmicrohttpd
+       depends on BR2_USE_WCHAR # libnice -> libglib2
+       depends on BR2_USE_MMU # libnice
+       help
+         Janus is an open source, general purpose, WebRTC gateway
+         designed and developed by Meetecho.
+
+         https://github.com/meetecho/janus-gateway
+
+comment "janus-gateway needs a toolchain w/ threads, wchar"
+       depends on BR2_USE_MMU
+       depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
diff --git a/package/janus-gateway/janus-gateway.mk b/package/janus-gateway/janus-gateway.mk
new file mode 100644 (file)
index 0000000..6c89e9a
--- /dev/null
@@ -0,0 +1,52 @@
+################################################################################
+#
+# janus-gateway
+#
+################################################################################
+
+JANUS_GATEWAY_VERSION = c632c1e9da5ffd8c34df6086a1aa5a8511a2a02d
+JANUS_GATEWAY_SITE = $(call github,meetecho,janus-gateway,$(JANUS_GATEWAY_VERSION))
+JANUS_GATEWAY_LICENSE = GPLv3
+JANUS_GATEWAY_LICENSE_FILES = COPYING
+
+# ding-libs provides the ini_config library
+JANUS_GATEWAY_DEPENDENCIES = host-pkgconf libmicrohttpd jansson \
+       libnice sofia-sip libsrtp host-gengetopt openssl ding-libs
+
+# Straight out of the repository, no ./configure
+JANUS_GATEWAY_AUTORECONF = YES
+
+define JANUS_GATEWAY_M4
+        mkdir -p $(@D)/m4
+endef
+JANUS_GATEWAY_POST_PATCH_HOOKS += JANUS_GATEWAY_M4
+
+JANUS_GATEWAY_CONF_OPTS = \
+       --disable-data-channels \
+       --disable-rabbitmq
+
+ifeq ($(BR2_PACKAGE_LIBWEBSOCK),y)
+JANUS_GATEWAY_DEPENDENCIES += libwebsock
+JANUS_GATEWAY_CONF_OPTS += --enable-websockets
+else
+JANUS_GATEWAY_CONF_OPTS += --disable-websockets
+endif
+
+ifeq ($(BR2_PACKAGE_OPUS),y)
+JANUS_GATEWAY_DEPENDENCIES += opus
+JANUS_GATEWAY_CONF_OPTS += --enable-plugin-audiobridge
+else
+JANUS_GATEWAY_CONF_OPTS += --disable-plugin-audiobridge
+endif
+
+ifeq ($(BR2_PACKAGE_LIBOGG),y)
+JANUS_GATEWAY_DEPENDENCIES += libogg
+JANUS_GATEWAY_CONF_OPTS += --enable-plugin-voicemail
+else
+JANUS_GATEWAY_CONF_OPTS += --disable-plugin-voicemail
+endif
+
+# Parallel build broken
+JANUS_GATEWAY_MAKE = $(MAKE1)
+
+$(eval $(autotools-package))