telephony/net/rtpengine/Makefile
Sebastian Kemper da55a3690f rtpengine: bump to 8.5.2.1 LTS
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
2020-10-24 12:15:27 +02:00

267 lines
6.8 KiB
Makefile

#
# Copyright (C) 2020 Sebastian Kemper <sebastian_ml@gmx.net>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=rtpengine
PKG_VERSION:=mr8.5.2.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/sipwise/rtpengine/tar.gz/$(PKG_VERSION)?
PKG_HASH:=7c6f0e036d9aa29485236cc9cd7157625071038f5d773c54c6dc0dc4606aed1e
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
# When building in parallel, some files (like streambuf.c or dtmflib.c)
# are generated multiple times by the rtpengine build system.
# Intermittently they then contain garbage, leading to redefinition
# errors.
PKG_BUILD_PARALLEL:=0
PKG_BUILD_DEPENDS:=gperf/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
ENGINE_DEPENDS := \
+glib2 \
+json-glib \
+libevent2 \
+libevent2-pthreads \
+libhiredis \
+libip4tc \
+libopenssl \
+libpcap \
+libpcre \
+xmlrpc-c-client \
+zlib
ENGINE_DEPENDS_TRANSCODING := \
$(ENGINE_DEPENDS) \
+bcg729 \
+libffmpeg-full \
+libmariadb \
+libspandsp
RECORDING_DEPENDS := \
+glib2 \
+libffmpeg-full \
+libmariadb \
+libopenssl
RTPENGINE_USERID:=$(PKG_NAME)=378:$(PKG_NAME)=378
define Package/rtpengine/Default
URL:=https://github.com/sipwise/rtpengine
endef
define Package/rtpengine/Template
$(call Package/rtpengine/Default)
TITLE:=Sipwise RTP Engine
CATEGORY:=Network
SECTION:=net
SUBMENU:=Telephony
USERID:=$(RTPENGINE_USERID)
endef
define Package/rtpengine/description/Template
The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP
based media traffic. It's meant to be used with the Kamailio SIP proxy
and forms a drop-in replacement for any of the other available RTP and
media proxies.
endef
define Package/rtpengine
$(call Package/rtpengine/Template)
VARIANT:=transcode
DEPENDS := \
$(patsubst +%,+PACKAGE_rtpengine:%,$(ENGINE_DEPENDS_TRANSCODING)) \
+IPV6:libip6tc
endef
define Package/rtpengine/conffiles
/etc/config/rtpengine
/etc/init.d/rtpengine
/etc/rtpengine/rtpengine.conf
endef
define Package/rtpengine/description
$(call Package/rtpengine/description/Template)
Please consider installing kmod-ipt-rtpengine.
endef
define Package/rtpengine/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/rtpengine $(1)/usr/bin
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/rtpengine.init $(1)/etc/init.d/rtpengine
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/rtpengine.conf $(1)/etc/config/rtpengine
$(INSTALL_DIR) $(1)/etc/rtpengine
$(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine.sample.conf \
$(1)/etc/rtpengine/rtpengine.conf
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_BIN) ./files/rtpengine.hotplug \
$(1)/etc/hotplug.d/iface/90-rtpengine
endef
define Package/rtpengine-no-transcode
$(call Package/rtpengine/Template)
TITLE+= (no transcoding)
VARIANT:=no-transcode
CONFLICTS:=rtpengine
DEPENDS := \
$(patsubst +%,+PACKAGE_rtpengine-no-transcode:%,$(ENGINE_DEPENDS)) \
+IPV6:libip6tc
endef
Package/rtpengine-no-transcode/conffiles=$(Package/rtpengine/conffiles)
define Package/rtpengine-no-transcode/description
$(call Package/rtpengine/description/Template)
This package comes without transcoding support.
Please consider installing kmod-ipt-rtpengine.
endef
Package/rtpengine-no-transcode/install=$(Package/rtpengine/install)
define Package/rtpengine-recording
$(call Package/rtpengine/Default)
TITLE:=Sipwise RTP Recording Daemon
CATEGORY:=Network
SECTION:=net
SUBMENU:=Telephony
USERID:=$(RTPENGINE_USERID)
DEPENDS:=$(patsubst +%,+PACKAGE_rtpengine-recording:%,$(RECORDING_DEPENDS))
endef
define Package/rtpengine-recording/conffiles
/etc/config/rtpengine-recording
/etc/rtpengine/rtpengine-recording.conf
endef
define Package/rtpengine-recording/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) \
$(PKG_BUILD_DIR)/recording-daemon/rtpengine-recording \
$(1)/usr/bin
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/rtpengine-recording.init \
$(1)/etc/init.d/rtpengine-recording
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/rtpengine-recording.conf \
$(1)/etc/config/rtpengine-recording
$(INSTALL_DIR) $(1)/etc/rtpengine
$(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine-recording.sample.conf \
$(1)/etc/rtpengine/rtpengine-recording.conf
endef
define Package/iptables-mod-rtpengine
$(call Package/rtpengine/Default)
TITLE:=Sipwise rtpengine iptables extension
CATEGORY:=Network
SECTION:=net
SUBMENU:=Firewall
DEPENDS:=+PACKAGE_iptables-mod-rtpengine:libxtables
endef
define Package/iptables-mod-rtpengine/install
$(INSTALL_DIR) $(1)/usr/lib/iptables
$(INSTALL_BIN) \
$(PKG_BUILD_DIR)/iptables-extension/libxt_RTPENGINE.so \
$(1)/usr/lib/iptables
endef
define KernelPackage/ipt-rtpengine
$(call Package/rtpengine/Default)
TITLE:=Sipwise rtpengine netfilter module
SUBMENU:=Netfilter Extensions
FILES:=$(PKG_BUILD_DIR)/kernel-module/xt_RTPENGINE.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoProbe,xt_RTPENGINE)
DEPENDS := \
+PACKAGE_kmod-ipt-rtpengine:kmod-crypto-hash \
+PACKAGE_kmod-ipt-rtpengine:kmod-ipt-core
MODPARAMS.xt_RTPENGINE := \
proc_uid=$(PKG_NAME) \
proc_gid=$(PKG_NAME)
endef
define KernelPackage/ipt-rtpengine/description
Netfilter kernel module for rtpengine
endef
MAKE_VARS+=RTPENGINE_VERSION=$(PKG_VERSION)
ifeq ($(BUILD_VARIANT),no-transcode)
MAKE_VARS+=with_transcoding=no
endif
# rtpengine uses Debian's dpkg utility programs if it can find them. But
# we don't want build host flags to leak into our cross-compile.
define Build/Prepare
$(call Build/Prepare/Default)
ifeq ($(QUILT),)
cd "$(PKG_BUILD_DIR)" && \
$(FIND) . -maxdepth 2 -name "*Makefile" | \
xargs -I{} $(SED) \
'/shell which dpkg-/s/dpkg/OpenWrt-has-no-dpkg/' {}
endif
endef
define Build/Configure
endef
define Build/Compile
ifneq ($(CONFIG_PACKAGE_kmod-ipt-rtpengine),)
RTPENGINE_VERSION=$(PKG_VERSION) $(MAKE) \
-C $(PKG_BUILD_DIR)/kernel-module \
KSRC=$(LINUX_DIR) \
ARCH=$(LINUX_KARCH) \
CROSS_COMPILE=$(TARGET_CROSS)
endif
ifneq ($(CONFIG_PACKAGE_iptables-mod-rtpengine),)
$(call Build/Compile/Default,-C $(PKG_BUILD_DIR)/iptables-extension)
endif
ifneq ($(CONFIG_PACKAGE_rtpengine)$(CONFIG_PACKAGE_rtpengine-no-transcode),)
$(call Build/Compile/Default,-C $(PKG_BUILD_DIR)/daemon)
endif
ifneq ($(CONFIG_PACKAGE_rtpengine-recording),)
$(call Build/Compile/Default,-C $(PKG_BUILD_DIR)/recording-daemon)
endif
endef
define Build/InstallDev
endef
$(eval $(call BuildPackage,rtpengine-no-transcode))
$(eval $(call KernelPackage,ipt-rtpengine))
$(eval $(call BuildPackage,iptables-mod-rtpengine))
$(eval $(call BuildPackage,rtpengine))
$(eval $(call BuildPackage,rtpengine-recording))