turnserver.spec 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. Name: turnserver
  2. Version: 4.1.2.1
  3. Release: 0%{dist}
  4. Summary: Coturn TURN Server
  5. Group: System Environment/Libraries
  6. License: BSD
  7. URL: https://code.google.com/p/coturn/
  8. Source0: http://turnserver.open-sys.org/downloads/v%{version}/%{name}-%{version}.tar.gz
  9. BuildRequires: gcc, make, redhat-rpm-config
  10. BuildRequires: openssl-devel, libevent-devel >= 2.0.0, postgresql-devel
  11. BuildRequires: hiredis-devel
  12. Requires: openssl, libevent >= 2.0.0, mysql-libs, postgresql-libs
  13. Requires: hiredis, perl-DBI, perl-libwww-perl
  14. Requires: telnet
  15. %if 0%{?el6}
  16. BuildRequires: epel-release, mysql-devel
  17. Requires: epel-release, mysql-libs
  18. %else
  19. BuildRequires: mariadb-devel
  20. Requires: mariadb-libs
  21. %endif
  22. %description
  23. The TURN Server is a VoIP media traffic NAT traversal server and gateway. It
  24. can be used as a general-purpose network traffic TURN server/gateway, too.
  25. This implementation also includes some extra features. Supported RFCs:
  26. TURN specs:
  27. - RFC 5766 - base TURN specs
  28. - RFC 6062 - TCP relaying TURN extension
  29. - RFC 6156 - IPv6 extension for TURN
  30. - Experimental DTLS support as client protocol.
  31. STUN specs:
  32. - RFC 3489 - "classic" STUN
  33. - RFC 5389 - base "new" STUN specs
  34. - RFC 5769 - test vectors for STUN protocol testing
  35. - RFC 5780 - NAT behavior discovery support
  36. The implementation fully supports the following client-to-TURN-server protocols:
  37. - UDP (per RFC 5766)
  38. - TCP (per RFC 5766 and RFC 6062)
  39. - TLS (per RFC 5766 and RFC 6062); SSL3/TLS1.0/TLS1.1/TLS1.2; SSL2 wrapping
  40. supported
  41. - DTLS (experimental non-standard feature)
  42. Supported relay protocols:
  43. - UDP (per RFC 5766)
  44. - TCP (per RFC 6062)
  45. Supported user databases (for user repository, with passwords or keys, if
  46. authentication is required):
  47. - Flat files
  48. - MySQL
  49. - PostgreSQL
  50. - Redis
  51. Redis can also be used for status and statistics storage and notification.
  52. Supported TURN authentication mechanisms:
  53. - short-term
  54. - long-term
  55. - TURN REST API (a modification of the long-term mechanism, for time-limited
  56. secret-based authentication, for WebRTC applications)
  57. The load balancing can be implemented with the following tools (either one or a
  58. combination of them):
  59. - network load-balancer server
  60. - DNS-based load balancing
  61. - built-in ALTERNATE-SERVER mechanism.
  62. %package utils
  63. Summary: TURN client utils
  64. Group: System Environment/Libraries
  65. Requires: turnserver-client-libs = %{version}-%{release}
  66. %description utils
  67. This package contains the TURN client utils.
  68. %package client-libs
  69. Summary: TURN client library
  70. Group: System Environment/Libraries
  71. Requires: openssl, libevent >= 2.0.0
  72. %description client-libs
  73. This package contains the TURN client library.
  74. %package client-devel
  75. Summary: TURN client development headers.
  76. Group: Development/Libraries
  77. Requires: turnserver-client-libs = %{version}-%{release}
  78. %description client-devel
  79. This package contains the TURN client development headers.
  80. %prep
  81. %setup -q -n %{name}-%{version}
  82. %build
  83. PREFIX=%{_prefix} CONFDIR=%{_sysconfdir}/%{name} EXAMPLESDIR=%{_datadir}/%{name} \
  84. MANPREFIX=%{_datadir} LIBDIR=%{_libdir} MORECMD=cat ./configure
  85. make
  86. %install
  87. rm -rf $RPM_BUILD_ROOT
  88. DESTDIR=$RPM_BUILD_ROOT make install
  89. mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig
  90. install -m644 rpm/turnserver.sysconfig \
  91. $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/turnserver
  92. mv $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnuserdb.conf.default \
  93. $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnuserdb.conf
  94. %if 0%{?el6}
  95. cat $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnserver.conf.default | \
  96. sed s/#syslog/syslog/g | \
  97. sed s/#no-stdout-log/no-stdout-log/g > \
  98. $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnserver.conf
  99. mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d
  100. install -m755 rpm/turnserver.init.el \
  101. $RPM_BUILD_ROOT/%{_sysconfdir}/rc.d/init.d/turnserver
  102. %else
  103. cat $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnserver.conf.default | \
  104. sed s/#syslog/syslog/g | \
  105. sed s/#no-stdout-log/no-stdout-log/g | \
  106. sed s/#pidfile/pidfile/g > \
  107. $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnserver.conf
  108. mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
  109. install -m755 rpm/turnserver.service.fc \
  110. $RPM_BUILD_ROOT/%{_unitdir}/turnserver.service
  111. %endif
  112. rm -rf $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/turnserver.conf.default
  113. %clean
  114. rm -rf "$RPM_BUILD_ROOT"
  115. %pre
  116. %{_sbindir}/groupadd -r turnserver 2> /dev/null || :
  117. %{_sbindir}/useradd -r -g turnserver -s /bin/false -c "TURN Server daemon" -d \
  118. %{_datadir}/%{name} turnserver 2> /dev/null || :
  119. %post
  120. %if 0%{?el6}
  121. /sbin/chkconfig --add turnserver
  122. %else
  123. /bin/systemctl --system daemon-reload
  124. %endif
  125. %preun
  126. if [ $1 = 0 ]; then
  127. %if 0%{?el6}
  128. /sbin/service turnserver stop > /dev/null 2>&1
  129. /sbin/chkconfig --del turnserver
  130. %else
  131. /bin/systemctl stop turnserver.service
  132. /bin/systemctl disable turnserver.service 2> /dev/null
  133. %endif
  134. fi
  135. %postun
  136. %if 0%{?fedora}
  137. /bin/systemctl --system daemon-reload
  138. %endif
  139. %files
  140. %defattr(-,root,root)
  141. %{_bindir}/turnserver
  142. %{_bindir}/turnadmin
  143. %{_mandir}/man1/coturn.1.gz
  144. %{_mandir}/man1/turnserver.1.gz
  145. %{_mandir}/man1/turnadmin.1.gz
  146. %dir %attr(-,turnserver,turnserver) %{_sysconfdir}/%{name}
  147. %config(noreplace) %attr(0644,turnserver,turnserver) %{_sysconfdir}/%{name}/turnserver.conf
  148. %config(noreplace) %attr(0644,turnserver,turnserver) %{_sysconfdir}/%{name}/turnuserdb.conf
  149. %config(noreplace) %{_sysconfdir}/sysconfig/turnserver
  150. %if 0%{?el6}
  151. %config %{_sysconfdir}/rc.d/init.d/turnserver
  152. %else
  153. %config %{_unitdir}/turnserver.service
  154. %endif
  155. %dir %{_docdir}/%{name}
  156. %{_docdir}/%{name}/LICENSE
  157. %{_docdir}/%{name}/INSTALL
  158. %{_docdir}/%{name}/postinstall.txt
  159. %{_docdir}/%{name}/README.turnadmin
  160. %{_docdir}/%{name}/README.turnserver
  161. %{_docdir}/%{name}/schema.sql
  162. %{_docdir}/%{name}/schema.mongo.sh
  163. %{_docdir}/%{name}/schema.stats.redis
  164. %{_docdir}/%{name}/schema.userdb.redis
  165. %dir %{_datadir}/%{name}
  166. %{_datadir}/%{name}/schema.sql
  167. %{_datadir}/%{name}/schema.mongo.sh
  168. %{_datadir}/%{name}/schema.stats.redis
  169. %{_datadir}/%{name}/schema.userdb.redis
  170. %{_datadir}/%{name}/testredisdbsetup.sh
  171. %{_datadir}/%{name}/testmongosetup.sh
  172. %{_datadir}/%{name}/testsqldbsetup.sql
  173. %dir %{_datadir}/%{name}/etc
  174. %{_datadir}/%{name}/etc/turn_server_cert.pem
  175. %{_datadir}/%{name}/etc/turn_server_pkey.pem
  176. %{_datadir}/%{name}/etc/turnserver.conf
  177. %{_datadir}/%{name}/etc/turnuserdb.conf
  178. %dir %{_datadir}/%{name}/scripts
  179. %{_datadir}/%{name}/scripts/peer.sh
  180. %{_datadir}/%{name}/scripts/readme.txt
  181. %dir %{_datadir}/%{name}/scripts/basic
  182. %{_datadir}/%{name}/scripts/basic/dos_attack.sh
  183. %{_datadir}/%{name}/scripts/basic/relay.sh
  184. %{_datadir}/%{name}/scripts/basic/tcp_client.sh
  185. %{_datadir}/%{name}/scripts/basic/tcp_client_c2c_tcp_relay.sh
  186. %{_datadir}/%{name}/scripts/basic/udp_c2c_client.sh
  187. %{_datadir}/%{name}/scripts/basic/udp_client.sh
  188. %dir %{_datadir}/%{name}/scripts/loadbalance
  189. %{_datadir}/%{name}/scripts/loadbalance/master_relay.sh
  190. %{_datadir}/%{name}/scripts/loadbalance/slave_relay_1.sh
  191. %{_datadir}/%{name}/scripts/loadbalance/slave_relay_2.sh
  192. %{_datadir}/%{name}/scripts/loadbalance/tcp_c2c_tcp_relay.sh
  193. %{_datadir}/%{name}/scripts/loadbalance/udp_c2c.sh
  194. %dir %{_datadir}/%{name}/scripts/longtermsecure
  195. %{_datadir}/%{name}/scripts/longtermsecure/secure_dos_attack.sh
  196. %{_datadir}/%{name}/scripts/longtermsecure/secure_dtls_client.sh
  197. %{_datadir}/%{name}/scripts/longtermsecure/secure_dtls_client_cert.sh
  198. %{_datadir}/%{name}/scripts/longtermsecure/secure_tls_client_cert.sh
  199. %{_datadir}/%{name}/scripts/longtermsecure/secure_relay.sh
  200. %{_datadir}/%{name}/scripts/longtermsecure/secure_relay_cert.sh
  201. %{_datadir}/%{name}/scripts/longtermsecure/secure_tcp_client.sh
  202. %{_datadir}/%{name}/scripts/longtermsecure/secure_tcp_client_c2c_tcp_relay.sh
  203. %{_datadir}/%{name}/scripts/longtermsecure/secure_tls_client.sh
  204. %{_datadir}/%{name}/scripts/longtermsecure/secure_tls_client_c2c_tcp_relay.sh
  205. %{_datadir}/%{name}/scripts/longtermsecure/secure_udp_c2c.sh
  206. %{_datadir}/%{name}/scripts/longtermsecure/secure_udp_client.sh
  207. %dir %{_datadir}/%{name}/scripts/longtermsecuredb
  208. %{_datadir}/%{name}/scripts/longtermsecuredb/secure_relay_with_db_mysql.sh
  209. %{_datadir}/%{name}/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh
  210. %{_datadir}/%{name}/scripts/longtermsecuredb/secure_relay_with_db_mongo.sh
  211. %{_datadir}/%{name}/scripts/longtermsecuredb/secure_relay_with_db_psql.sh
  212. %{_datadir}/%{name}/scripts/longtermsecuredb/secure_relay_with_db_redis.sh
  213. %dir %{_datadir}/%{name}/scripts/restapi
  214. %{_datadir}/%{name}/scripts/restapi/secure_relay_secret.sh
  215. %{_datadir}/%{name}/scripts/restapi/secure_relay_secret_with_db_mysql.sh
  216. %{_datadir}/%{name}/scripts/restapi/secure_relay_secret_with_db_psql.sh
  217. %{_datadir}/%{name}/scripts/restapi/secure_relay_secret_with_db_redis.sh
  218. %{_datadir}/%{name}/scripts/restapi/secure_udp_client_with_secret.sh
  219. %{_datadir}/%{name}/scripts/restapi/shared_secret_maintainer.pl
  220. %dir %{_datadir}/%{name}/scripts/selfloadbalance
  221. %{_datadir}/%{name}/scripts/selfloadbalance/secure_dos_attack.sh
  222. %{_datadir}/%{name}/scripts/selfloadbalance/secure_relay.sh
  223. %dir %{_datadir}/%{name}/scripts/shorttermsecure
  224. %{_datadir}/%{name}/scripts/shorttermsecure/secure_relay_short_term_mech.sh
  225. %{_datadir}/%{name}/scripts/shorttermsecure/secure_tcp_client_c2c_tcp_relay_short_term.sh
  226. %{_datadir}/%{name}/scripts/shorttermsecure/secure_udp_client_short_term.sh
  227. %dir %{_datadir}/%{name}/scripts/mobile
  228. %{_datadir}/%{name}/scripts/mobile/mobile_relay.sh
  229. %{_datadir}/%{name}/scripts/mobile/mobile_dtls_client.sh
  230. %{_datadir}/%{name}/scripts/mobile/mobile_tcp_client.sh
  231. %{_datadir}/%{name}/scripts/mobile/mobile_tls_client_c2c_tcp_relay.sh
  232. %{_datadir}/%{name}/scripts/mobile/mobile_udp_client.sh
  233. %files utils
  234. %defattr(-,root,root)
  235. %{_bindir}/turnutils_peer
  236. %{_bindir}/turnutils_stunclient
  237. %{_bindir}/turnutils_uclient
  238. %{_mandir}/man1/turnutils.1.gz
  239. %{_mandir}/man1/turnutils_peer.1.gz
  240. %{_mandir}/man1/turnutils_stunclient.1.gz
  241. %{_mandir}/man1/turnutils_uclient.1.gz
  242. %dir %{_docdir}/%{name}
  243. %{_docdir}/%{name}/LICENSE
  244. %{_docdir}/%{name}/README.turnutils
  245. %dir %{_datadir}/%{name}
  246. %dir %{_datadir}/%{name}/etc
  247. %{_datadir}/%{name}/etc/turn_client_cert.pem
  248. %{_datadir}/%{name}/etc/turn_client_pkey.pem
  249. %files client-libs
  250. %{_docdir}/%{name}/LICENSE
  251. %{_libdir}/libturnclient.a
  252. %files client-devel
  253. %{_docdir}/%{name}/LICENSE
  254. %dir %{_includedir}/turn
  255. %{_includedir}/turn/ns_turn_defs.h
  256. %dir %{_includedir}/turn/client
  257. %{_includedir}/turn/client/ns_turn_ioaddr.h
  258. %{_includedir}/turn/client/ns_turn_msg_addr.h
  259. %{_includedir}/turn/client/ns_turn_msg_defs.h
  260. %{_includedir}/turn/client/ns_turn_msg_defs_new.h
  261. %{_includedir}/turn/client/ns_turn_msg.h
  262. %{_includedir}/turn/client/TurnMsgLib.h
  263. %changelog
  264. * Thu Aug 14 2014 Oleg Moskalenko <[email protected]>
  265. - Sync to 4.1.2.1
  266. * Tue Jul 29 2014 Oleg Moskalenko <[email protected]>
  267. - Sync to 4.1.1.1
  268. * Tue Jul 22 2014 Oleg Moskalenko <[email protected]>
  269. - Sync to 4.1.0.2
  270. * Wed Jun 25 2014 Oleg Moskalenko <[email protected]>
  271. - Sync to 4.0.1.4
  272. * Fri Jun 13 2014 Oleg Moskalenko <[email protected]>
  273. - Sync to 4.0.1.3
  274. * Fri Jun 06 2014 Oleg Moskalenko <[email protected]>
  275. - Sync to 4.0.1.2
  276. * Sun May 18 2014 Oleg Moskalenko <[email protected]>
  277. - Sync to 4.0.0.2
  278. * Wed May 07 2014 Oleg Moskalenko <[email protected]>
  279. - Sync to 4.0.0.1
  280. * Wed Apr 30 2014 Oleg Moskalenko <[email protected]>
  281. - Sync to 4.0.0.0
  282. * Tue Feb 04 2014 Oleg Moskalenko <[email protected]>
  283. - Sync to 3.2.2.6
  284. * Sat Jan 25 2014 Oleg Moskalenko <[email protected]>
  285. - Sync to 3.2.2.5
  286. * Fri Jan 24 2014 Oleg Moskalenko <[email protected]>
  287. - Sync to 3.2.2.4
  288. * Thu Jan 23 2014 Oleg Moskalenko <[email protected]>
  289. - Sync to 3.2.2.3
  290. * Tue Jan 21 2014 Oleg Moskalenko <[email protected]>
  291. - Sync to 3.2.2.2
  292. * Sat Jan 11 2014 Oleg Moskalenko <[email protected]>
  293. - CPU optimization, added to 3.2.2.1
  294. * Mon Jan 06 2014 Oleg Moskalenko <[email protected]>
  295. - Linux epoll performance improvements, added to 3.2.1.4
  296. * Mon Jan 06 2014 Oleg Moskalenko <[email protected]>
  297. - Telnet client installation added to 3.2.1.3
  298. * Sun Jan 05 2014 Oleg Moskalenko <[email protected]>
  299. - Sync to 3.2.1.2
  300. * Fri Jan 03 2014 Oleg Moskalenko <[email protected]>
  301. - Sync to 3.2.1.1
  302. * Thu Dec 26 2013 Oleg Moskalenko <[email protected]>
  303. - Sync to 3.2.1.0
  304. * Wed Dec 25 2013 Oleg Moskalenko <[email protected]>
  305. - Sync to 3.1.6.0
  306. * Mon Dec 23 2013 Oleg Moskalenko <[email protected]>
  307. - Sync to 3.1.5.3
  308. * Fri Dec 20 2013 Oleg Moskalenko <[email protected]>
  309. - Sync to 3.1.5.1
  310. * Thu Dec 19 2013 Oleg Moskalenko <[email protected]>
  311. - Sync to 3.1.4.2
  312. * Sat Dec 14 2013 Oleg Moskalenko <[email protected]>
  313. - Sync to 3.1.3.1
  314. * Wed Dec 11 2013 Oleg Moskalenko <[email protected]>
  315. - OpenSSL installation fixed 3.1.2.3
  316. * Tue Dec 10 2013 Oleg Moskalenko <[email protected]>
  317. - Updated to version 3.1.2.2
  318. * Mon Dec 09 2013 Oleg Moskalenko <[email protected]>
  319. - Updated to version 3.1.2.1
  320. * Sun Dec 01 2013 Oleg Moskalenko <[email protected]>
  321. - Updated to version 3.1.1.0
  322. * Sat Nov 30 2013 Oleg Moskalenko <[email protected]>
  323. - Updated to version 3.0.2.1.
  324. * Thu Nov 28 2013 Oleg Moskalenko <[email protected]>
  325. - Config file setting fixed: version 3.0.1.4.
  326. * Wed Nov 27 2013 Oleg Moskalenko <[email protected]>
  327. - Config file setting fixed: version 3.0.1.3.
  328. * Mon Nov 25 2013 Oleg Moskalenko <[email protected]>
  329. - Updated to version 3.0.1.2
  330. * Sun Nov 10 2013 Oleg Moskalenko <[email protected]>
  331. - Updated to version 3.0.0.0
  332. * Fri Nov 8 2013 Oleg Moskalenko <[email protected]>
  333. - Updated to version 2.6.7.2
  334. * Thu Nov 7 2013 Oleg Moskalenko <[email protected]>
  335. - Updated to version 2.6.7.1
  336. * Sun Nov 3 2013 Oleg Moskalenko <[email protected]>
  337. - Updated to version 2.6.7.0
  338. * Sat Nov 2 2013 Peter Dunkley <[email protected]>
  339. - Added Fedora support
  340. * Thu Oct 31 2013 Oleg Moskalenko <[email protected]>
  341. - Updated to version 2.6.6.2
  342. * Sun Oct 27 2013 Oleg Moskalenko <[email protected]>
  343. - Updated to version 2.6.6.1
  344. * Sun Oct 27 2013 Peter Dunkley <[email protected]>
  345. - Updated to version 2.6.6.0
  346. * Fri May 3 2013 Peter Dunkley <[email protected]>
  347. - First version