2 # Copyright (C) 2020 Sebastian Kemper <sebastian_ml@gmx.net>
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/kernel.mk
13 PKG_RELEASE
:=$(AUTORELEASE
)
15 PKG_SOURCE
:=$(PKG_NAME
)-mr
$(PKG_VERSION
).
tar.gz
16 PKG_SOURCE_URL
:=https
://codeload.github.com
/sipwise
/rtpengine
/tar.gz
/mr
$(PKG_VERSION
)?
17 PKG_HASH
:=03d8da1b5efcaa17ef88f306046f49e30ca87b3998c26a13bd96df922f8e729f
19 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)-$(BUILD_VARIANT
)/$(PKG_NAME
)-mr
$(PKG_VERSION
)
22 PKG_LICENSE_FILES
:=LICENSE
24 PKG_MAINTAINER
:=Sebastian Kemper
<sebastian_ml@gmx.net
>
26 # When building in parallel, some files (like streambuf.c or dtmflib.c)
27 # are generated multiple times by the rtpengine build system.
28 # Intermittently they then contain garbage, leading to redefinition
32 PKG_BUILD_DEPENDS
:=gperf
/host perl
/host
34 # With below variable set, $(PKG_SYMVERS_DIR)/rtpengine.symvers gets generated
35 # from kernel-module/Module.symvers.
36 PKG_EXTMOD_SUBDIRS
:=kernel-module
38 include $(INCLUDE_DIR
)/package.mk
39 include $(INCLUDE_DIR
)/nls.mk
55 ENGINE_DEPENDS_TRANSCODING
:= \
62 RECORDING_DEPENDS
:= \
70 RTPENGINE_GROUPID
:=$(RTPENGINE_USERID
)
71 RTPENGINE_USER
:=$(PKG_NAME
)=$(RTPENGINE_USERID
):$(PKG_NAME
)=$(RTPENGINE_GROUPID
)
73 define Package
/rtpengine
/Default
74 URL
:=https
://github.com
/sipwise
/rtpengine
77 define Package
/rtpengine
/Template
78 $(call Package
/rtpengine
/Default
)
79 TITLE
:=Sipwise RTP Engine
83 USERID
:=$(RTPENGINE_USER
)
86 define Package
/rtpengine
/description
/Template
87 The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP
88 based media traffic. It
's meant to be used with the Kamailio SIP proxy
89 and forms a drop-in replacement for any of the other available RTP and
93 define Package/rtpengine
94 $(call Package/rtpengine/Template)
97 $(patsubst +%,+PACKAGE_rtpengine:%,$(ENGINE_DEPENDS_TRANSCODING)) \
101 define Package/rtpengine/conffiles
102 /etc/config/rtpengine
103 /etc/init.d/rtpengine
104 /etc/rtpengine/rtpengine.conf
107 define Package/rtpengine/description
108 $(call Package/rtpengine/description/Template)
110 Please consider installing kmod-ipt-rtpengine.
114 define Package/rtpengine/install
115 $(INSTALL_DIR) $(1)/usr/bin
116 $(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/rtpengine $(1)/usr/bin
118 $(INSTALL_DIR) $(1)/etc/init.d
119 $(INSTALL_BIN) ./files/rtpengine.init $(1)/etc/init.d/rtpengine
121 $(INSTALL_DIR) $(1)/etc/config
122 $(INSTALL_CONF) ./files/rtpengine.conf $(1)/etc/config/rtpengine
124 $(INSTALL_DIR) $(1)/etc/rtpengine
125 $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine.sample.conf \
126 $(1)/etc/rtpengine/rtpengine.conf
128 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
129 $(INSTALL_BIN) ./files/rtpengine.hotplug \
130 $(1)/etc/hotplug.d/iface/90-rtpengine
133 define Package/rtpengine-no-transcode
134 $(call Package/rtpengine/Template)
135 TITLE+= (no transcoding)
136 VARIANT:=no-transcode
139 $(patsubst +%,+PACKAGE_rtpengine-no-transcode:%,$(ENGINE_DEPENDS)) \
143 Package/rtpengine-no-transcode/conffiles=$(Package/rtpengine/conffiles)
145 define Package/rtpengine-no-transcode/description
146 $(call Package/rtpengine/description/Template)
148 This package comes without transcoding support.
150 Please consider installing kmod-ipt-rtpengine.
154 Package/rtpengine-no-transcode/install=$(Package/rtpengine/install)
156 define Package/rtpengine-recording
157 $(call Package/rtpengine/Default)
158 TITLE:=Sipwise RTP Recording Daemon
162 USERID:=$(RTPENGINE_USER)
163 DEPENDS:=$(patsubst +%,+PACKAGE_rtpengine-recording:%,$(RECORDING_DEPENDS))
166 define Package/rtpengine-recording/conffiles
167 /etc/config/rtpengine-recording
168 /etc/rtpengine/rtpengine-recording.conf
171 define Package/rtpengine-recording/install
172 $(INSTALL_DIR) $(1)/usr/bin
174 $(PKG_BUILD_DIR)/recording-daemon/rtpengine-recording \
177 $(INSTALL_DIR) $(1)/etc/init.d
178 $(INSTALL_BIN) ./files/rtpengine-recording.init \
179 $(1)/etc/init.d/rtpengine-recording
181 $(INSTALL_DIR) $(1)/etc/config
182 $(INSTALL_CONF) ./files/rtpengine-recording.conf \
183 $(1)/etc/config/rtpengine-recording
185 $(INSTALL_DIR) $(1)/etc/rtpengine
186 $(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine-recording.sample.conf \
187 $(1)/etc/rtpengine/rtpengine-recording.conf
190 define Package/iptables-mod-rtpengine
191 $(call Package/rtpengine/Default)
192 TITLE:=Sipwise rtpengine iptables extension
196 DEPENDS:=+PACKAGE_iptables-mod-rtpengine:libxtables
199 define Package/iptables-mod-rtpengine/install
200 $(INSTALL_DIR) $(1)/usr/lib/iptables
202 $(PKG_BUILD_DIR)/iptables-extension/libxt_RTPENGINE.so \
203 $(1)/usr/lib/iptables
206 define KernelPackage/ipt-rtpengine
207 $(call Package/rtpengine/Default)
208 TITLE:=Sipwise rtpengine netfilter module
209 SUBMENU:=Netfilter Extensions
210 FILES:=$(PKG_BUILD_DIR)/kernel-module/xt_RTPENGINE.$(LINUX_KMOD_SUFFIX)
211 AUTOLOAD:=$(call AutoProbe,xt_RTPENGINE)
213 +PACKAGE_kmod-ipt-rtpengine:kmod-crypto-aead \
214 +PACKAGE_kmod-ipt-rtpengine:kmod-crypto-hash \
215 +PACKAGE_kmod-ipt-rtpengine:kmod-ipt-core
216 MODPARAMS.xt_RTPENGINE := \
217 proc_uid=$(RTPENGINE_USERID) \
218 proc_gid=$(RTPENGINE_GROUPID)
219 USERID:=$(RTPENGINE_USER)
222 define KernelPackage/ipt-rtpengine/conffiles
223 /etc/modules.d/ipt-rtpengine
226 define KernelPackage/ipt-rtpengine/description
227 Netfilter kernel module for rtpengine
231 MAKE_VARS+=RTPENGINE_VERSION=$(PKG_VERSION)
233 ifeq ($(BUILD_VARIANT),no-transcode)
234 MAKE_VARS+=with_transcoding=no
237 # rtpengine uses Debian's dpkg utility programs if it can find them. But
238 # we don't want build host flags to leak into our cross-compile.
240 $(call Build
/Prepare
/Default
)
242 cd
"$(PKG_BUILD_DIR)" && \
243 $(FIND
) .
-maxdepth
2 -name
"*Makefile" | \
245 '/shell which dpkg-/s/dpkg/OpenWrt-has-no-dpkg/' {} && \
246 $(SED
) 's|#!/usr/bin/perl|#!$(STAGING_DIR_HOSTPKG)/usr/bin/perl|' \
251 define Build
/Configure
256 ifneq ($(CONFIG_PACKAGE_kmod-ipt-rtpengine
),)
257 RTPENGINE_VERSION
=$(PKG_VERSION
) $(MAKE
) \
259 -C
$(PKG_BUILD_DIR
)/kernel-module \
264 ifneq ($(CONFIG_PACKAGE_iptables-mod-rtpengine
),)
265 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/iptables-extension
)
268 ifneq ($(CONFIG_PACKAGE_rtpengine
)$(CONFIG_PACKAGE_rtpengine-no-transcode
),)
269 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/daemon
)
272 ifneq ($(CONFIG_PACKAGE_rtpengine-recording
),)
273 $(call Build
/Compile
/Default
,-C
$(PKG_BUILD_DIR
)/recording-daemon
)
278 define Build
/InstallDev
281 # KernelPackage calls need to go first, otherwise hooks like
282 # collect_module_symvers won't get added.
283 $(eval
$(call KernelPackage
,ipt-rtpengine
))
284 $(eval
$(call BuildPackage
,rtpengine-no-transcode
))
285 $(eval
$(call BuildPackage
,iptables-mod-rtpengine
))
286 $(eval
$(call BuildPackage
,rtpengine
))
287 $(eval
$(call BuildPackage
,rtpengine-recording
))