turnserver.spec 15 KB

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