summaryrefslogtreecommitdiff
blob: 75790c371a7d987a3f68b57337ed450b4440380f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit systemd

DESCRIPTION="A server software for hosting quality voice communication via the internet"
HOMEPAGE="https://www.teamspeak.com/"
SRC_URI="
	amd64? ( https://files.teamspeak-services.com/releases/server/${PV}/teamspeak3-server_linux_amd64-${PV}.tar.bz2 )
	x86? ( https://files.teamspeak-services.com/releases/server/${PV}/teamspeak3-server_linux_x86-${PV}.tar.bz2 )
"

LICENSE="Apache-2.0 Boost-1.0 BSD LGPL-2.1 LGPL-3 MIT teamspeak3"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="doc mysql postgres tsdns"

RESTRICT="bindist mirror"

RDEPEND="
	acct-group/teamspeak
	acct-user/teamspeak
	postgres? ( dev-db/postgresql )
"

QA_PREBUILT="
	opt/teamspeak3-server/libmariadb.so.2
	opt/teamspeak3-server/libts3db_mariadb.so
	opt/teamspeak3-server/libts3db_postgresql.so
	opt/teamspeak3-server/libts3db_sqlite3.so
	opt/teamspeak3-server/libts3_ssh.so
	opt/teamspeak3-server/ts3server
	opt/teamspeak3-server/tsdnsserver
"

src_unpack() {
	default

	mv teamspeak3-server_linux_$(usex amd64 amd64 x86) "${P}" || die
}

src_install() {
	diropts -o teamspeak -g teamspeak
	keepdir /opt/teamspeak3-server /var/log/teamspeak3-server

	diropts
	keepdir /etc/teamspeak3-server

	touch "${ED}"/opt/teamspeak3-server/.ts3server_license_accepted || die

	exeinto /opt/teamspeak3-server
	doexe ts3server

	dodir /opt/bin
	dosym ../teamspeak3-server/ts3server /opt/bin/ts3server

	exeinto /opt/teamspeak3-server
	doexe libts3db_sqlite3.so libts3_ssh.so

	insinto /opt/teamspeak3-server/serverquerydocs
	doins -r serverquerydocs/.

	insinto /opt/teamspeak3-server/sql
	doins sql/*.sql
	doins -r sql/create_sqlite

	insinto /etc/teamspeak3-server
	newins "${FILESDIR}"/ts3server.ini-r2 ts3server.ini

	dodoc CHANGELOG
	docinto ts3server
	dodoc doc/*.{md,txt}

	newinitd "${FILESDIR}"/teamspeak.initd-r1 teamspeak3-server
	systemd_newunit "${FILESDIR}"/teamspeak.service teamspeak3-server.service

	newenvd - 99teamspeak3-server <<- EOF
		CONFIG_PROTECT="/etc/teamspeak3-server/ts3server.ini /etc/teamspeak3-server/ts3server_mariadb.ini /etc/teamspeak3-server/tsdns_settings.ini"
	EOF

	if use doc; then
		docinto html
		dodoc -r doc/serverquery/.
	fi

	if use mysql; then
		insinto /etc/teamspeak3-server
		newins "${FILESDIR}"/ts3server_mariadb.ini.sample-r2 ts3server_mariadb.ini.sample
		doins "${FILESDIR}"/ts3db_mariadb.ini.sample

		exeinto /opt/teamspeak3-server
		doexe libts3db_mariadb.so
		doexe redist/libmariadb.so.2

		insinto /opt/teamspeak3-server/sql
		doins -r sql/create_mariadb
		doins -r sql/updates_and_fixes
	fi

	if use postgres; then
		insinto /etc/teamspeak3-server
		doins "${FILESDIR}"/ts3server_postgresql.ini.sample
		doins "${FILESDIR}"/ts3db_postgresql.ini.sample

		exeinto /opt/teamspeak3-server
		doexe libts3db_postgresql.so

		insinto /opt/teamspeak3-server/sql
		doins -r sql/create_postgresql
		doins -r sql/updates_and_fixes
	fi

	if use tsdns; then
		exeinto /opt/teamspeak3-server
		doexe tsdns/tsdnsserver
		dodir /opt/bin
		dosym ../teamspeak3-server/tsdnsserver /opt/bin/tsdnsserver

		insinto /etc/teamspeak3-server
		doins tsdns/tsdns_settings.ini.sample

		docinto tsdns
		dodoc tsdns/{README,USAGE}
	fi
}

pkg_postinst() {
	elog "If you have a license,"
	elog "put it in /opt/teamspeak3-server named as licensekey.dat."
	elog "Please note, that the license must be writeable by the teamspeak user,"
	elog "as it will be automatically updated every six months."
}