coturn: new package
[feed/telephony.git] / net / coturn / Makefile
1 #
2 # Copyright (C) 2021 Sebastian Kemper <sebastian_ml@gmx.net>
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=coturn
11 PKG_VERSION:=4.5.2
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://codeload.github.com/coturn/coturn/tar.gz/$(PKG_VERSION)?
16 PKG_HASH:=462f1aa5c2455f28c1c8df09510d9e88ab14a1159b5e33ea5be5095262e83745
17
18 PKG_LICENSE:=BSD-COTURN-CITRIX COMBINED-CITRIX-VIVOCHA-BSD MIT-HASH
19 PKG_LICENSE_FILES:=LICENSE src/apps/relay/dbdrivers/* src/server/ns_turn_khash.h
20
21 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>, Sebastian Kemper <sebastian_ml@gmx.net>
22
23 PKG_BUILD_PARALLEL:=1
24
25 PKG_INSTALL:=1
26
27 PKG_CONFIG_DEPENDS+= \
28 CONFIG_COTURN_ENABLE_MYSQL \
29 CONFIG_COTURN_ENABLE_POSTGRESQL \
30 CONFIG_COTURN_ENABLE_REDIS \
31 CONFIG_COTURN_ENABLE_SQLITE
32
33 PKG_CPE_ID:=cpe:/a:coturn_project:coturn
34
35 include $(INCLUDE_DIR)/package.mk
36 include $(INCLUDE_DIR)/nls.mk
37
38 define Package/coturn
39 TITLE:=coturn TURN and STUN Server
40 CATEGORY:=Network
41 SECTION:=net
42 SUBMENU:=Telephony
43 URL:=https://github.com/coturn/coturn
44 USERID:=turnserver=379:turnserver=379
45 DEPENDS := \
46 +libevent2 \
47 +libevent2-extra \
48 +libevent2-pthreads \
49 +libevent2-openssl \
50 +libopenssl \
51 +COTURN_ENABLE_MYSQL:libmariadb \
52 +COTURN_ENABLE_POSTGRESQL:libpq \
53 +COTURN_ENABLE_REDIS:libhiredis \
54 +COTURN_ENABLE_SQLITE:libsqlite3
55 FILE_MODES:=/etc/turnserver:turnserver:turnserver:0750
56 endef
57
58 define Package/coturn/conffiles
59 /etc/config/turnserver
60 /etc/init.d/turnserver
61 /etc/turnserver.conf
62 endef
63
64 define Package/coturn/config
65 menu "coturn configuration"
66 depends on PACKAGE_coturn
67
68 config COTURN_ENABLE_SQLITE
69 bool "SQLite support"
70 default y
71 help
72 Enable SQLite support
73
74 config COTURN_ENABLE_MYSQL
75 bool "MySQL support"
76 default n
77 help
78 Enable MySQL support
79
80 config COTURN_ENABLE_POSTGRESQL
81 bool "PostgreSQL support"
82 default n
83 help
84 Enable PostgreSQL support
85
86 config COTURN_ENABLE_REDIS
87 bool "Redis support"
88 default n
89 help
90 Enable Redis support
91
92 endmenu
93 endef
94
95 define Package/coturn/description
96 The TURN Server is a VoIP media traffic NAT traversal server and
97 gateway. It can be used as a general-purpose network traffic TURN server
98 and gateway, too.
99 endef
100
101 define Package/coturn/install
102 $(INSTALL_DIR) \
103 $(1)/etc/{config,init.d,turnserver} $(1)/usr/{bin,share/coturn}
104 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/turnserver.conf.default \
105 $(1)/etc/turnserver.conf
106 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/turn* $(1)/usr/bin
107 $(INSTALL_BIN) ./files/turnserver.init \
108 $(1)/etc/init.d/turnserver
109 $(INSTALL_CONF) ./files/turnserver.conf \
110 $(1)/etc/config/turnserver
111 ifneq ($(CONFIG_COTURN_ENABLE_MYSQL)$(CONFIG_COTURN_ENABLE_POSTGRESQL)$(CONFIG_COTURN_ENABLE_SQLITE),)
112 $(INSTALL_DATA) \
113 $(PKG_INSTALL_DIR)/usr/share/coturn/{schema,testsqldbsetup}.sql \
114 $(1)/usr/share/coturn
115 endif
116 ifneq ($(CONFIG_COTURN_ENABLE_REDIS),)
117 $(INSTALL_DATA) \
118 $(PKG_INSTALL_DIR)/usr/share/coturn/schema.{stats,userdb}.redis \
119 $(1)/usr/share/coturn
120 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/coturn/testredisdbsetup.sh \
121 $(1)/usr/share/coturn
122 endif
123 endef
124
125 CONFIGURE_ARGS+= \
126 --disable-rpath \
127 --schemadir=/usr/share/coturn \
128 --turndbdir=/etc/turnserver
129
130 CONFIGURE_VARS+= \
131 TURN_NO_PROMETHEUS=1 \
132 TURN_NO_SCTP=1 \
133 TURN_NO_SYSTEMD=1 \
134 TURN_NO_MONGO=1 \
135 $(if $(CONFIG_COTURN_ENABLE_MYSQL),,TURN_NO_MYSQL=1) \
136 $(if $(CONFIG_COTURN_ENABLE_POSTGRESQL),,TURN_NO_PQ=1) \
137 $(if $(CONFIG_COTURN_ENABLE_REDIS),,TURN_NO_HIREDIS=1) \
138 $(if $(CONFIG_COTURN_ENABLE_SQLITE),,TURN_NO_SQLITE=1)
139
140 define Build/InstallDev
141 endef
142
143 $(eval $(call BuildPackage,coturn))