summaryrefslogtreecommitdiff
blob: 6a4a9a85fb71291df6b19f171c600485967f2136 (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
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=4

inherit versionator

MY_PN="WowzaMediaServer"
MY_P="${MY_PN}-${PV%_p*}"
MY_PP="${MY_PN}-$(replace_all_version_separators - ${PV%_p*})"
JOLOKIA=jolokia-1.0.2-bin
DESCRIPTION="High-performance server for unified media streaming to any screen (rtmp, hls, hds)"
HOMEPAGE="http://www.wowza.com/"
SRC_URI="http://www.wowza.com/downloads/${MY_PP}/${MY_P}.tar.bin
bwcheck? ( http://www.wowzamedia.com/downloads/forums/bwcheck/wms-plugin-bwcheck.zip )"
#jolokia? ( http://www.jolokia.org/dist/1.0.2/${JOLOKIA}.zip )"

if [[ ${PV/_p} != ${PV} ]]; then
	SRC_URI+=" http://www.wowza.com/downloads/${MY_PP}/${MY_PN}${PV/_p/-patch}.zip"
fi

LICENSE="wowza-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+bwcheck"
RESTRICT=""

DEPEND=""
RDEPEND="virtual/jdk"

WDESTDIR="/opt/wowza"
EXT_DIR="/media/store1/support/wowza-jars/"

SED_LOCAL_FILES="bin/WowzaMediaServerOSX bin/setenv.sh bin/WowzaMediaServer
README.html examples/VideoChat/install.sh
examples/SimpleVideoStreaming/install.sh examples/SHOUTcast/install.sh
examples/BWChecker/install.sh examples/VideoRecording/install.sh
examples/installall.sh examples/TextChat/install.sh
examples/ServerSideModules/install.sh
examples/ServerSideModules/server/build.xml
examples/LiveVideoStreaming/install.sh examples/LiveDvrStreaming/install.sh
examples/RemoteSharedObjects/install.sh"
if [[ ${PV/_p} != ${PV} ]]; then
	SED_LOCAL_FILES+=" README.txt"
fi

QA_PREBUILT="opt/wowza/${MY_P}/lib-native/linux64/*"
QA_EXECSTACK="opt/wowza/${MY_P}/lib-native/linux64/*"

src_unpack() {
	mkdir -p "${S}"
	cp "${DISTDIR}/${MY_P}.tar.bin" "${S}" || die
	if [[ ${PV/_p} != ${PV} ]]; then
		unpack "${MY_PN}${PV/_p/-patch}.zip"
	fi
	use bwcheck && unpack wms-plugin-bwcheck.zip
	#use jolokia && unpack ${JOLOKIA}.zip
	if [[ -d ${EXT_DIR} ]]; then
		mkdir libs
		for lib in "${EXT_DIR}"/*.jar; do
			elog "Preparing to install ${lib##*/} extension."
			cp "${lib}" "${WORKDIR}/libs" || die
		done
	fi
}

src_prepare() {
	sed -i -e '1,5{s|^more <<"EOF"|true <<"EOF"|}' \
		-e "1,855{s|^agreed=.*|agreed=yes|;s|^baseDir=.*|baseDir=${ED}${WDESTDIR}/|;s|^inetDest=.*|inetDest=${ED}/etc/init.d/|;}" \
		-e "1,855{s|/usr/local/WowzaMediaServer|${WDESTDIR}/WowzaMediaServer|g}" "${S}/${MY_P}.tar.bin"
	chmod +x "${S}/${MY_P}.tar.bin" || die
	if [[ ${PV/_p} != ${PV} ]]; then
		rm -rf "${WORKDIR}/${MY_PN}${PV/_p/-patch}/lib-native/win64" || die
	fi
	echo "CONFIG_PROTECT=\"${EPREFIX}${WDESTDIR}/${MY_P}/conf ${EPREFIX}${WDESTDIR}/${MY_P}/bin/setenv.sh\"" >> "${T}/50${PN}"
}

src_compile() { :; }

src_install() {
	dodir ${WDESTDIR}
	./${MY_P}.tar.bin || die

	if [[ ${PV/_p} != ${PV} ]]; then
		einfo "Applying ${MY_PN}${PV/_p/-patch}.zip"
		pushd "${WORKDIR}/${MY_PN}${PV/_p/-patch}" >/dev/null
		find . -type d -exec mkdir -v -p "${ED}${WDESTDIR}/${MY_P}"/'{}' \; || die
		find . -type f -exec cp -v '{}' "${ED}${WDESTDIR}/${MY_P}"/'{}' \; || die
		popd >/dev/null
	fi
	# Fix execution permissions on all files
	find "${ED}${WDESTDIR}/${MY_P}/" -type f -exec chmod -x '{}' \;
	chmod +x "${ED}${WDESTDIR}/${MY_P}/bin"/*.sh || die
	chmod +x "${ED}${WDESTDIR}/${MY_P}/bin"/WowzaMediaServer* || die

	if use bwcheck; then
		cp -v "${WORKDIR}/wms-plugin-bwcheck/wms-plugin-bwcheck.jar" "${ED}${WDESTDIR}/${MY_P}/lib/" || die
	fi
	for lib in "${WORKDIR}/libs"/*; do
		elog "Installing ${lib##*/}..."
		cp -v "${lib}" "${ED}${WDESTDIR}/${MY_P}/lib/" || die
	done

	pushd "${ED}${WDESTDIR}/WowzaMediaServer/" >/dev/null
	sed -i -e "s|/usr/local|${WDESTDIR}|" ${SED_LOCAL_FILES}
	while read file; do
		ewarn "QQA: /usr/local path in file. Update SED_LOCAL_FILES ($file)"
	done < <(find "${ED}" -type f -exec grep -H -e "/usr/local" '{}' \;)
	popd >/dev/null

	doenvd "${T}/50${PN}"
}