You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-video/unifi-video/unifi-video-3.10.13-r5.ebuild

93 lines
2.1 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit systemd
MY_PV="${PV/_beta/-beta.}"
DESCRIPTION="UniFi Video Server"
HOMEPAGE="https://www.ubnt.com/download/unifi-video/"
SRC_URI="https://dl.ubnt.com/firmwares/ufv/v${MY_PV}/unifi-video.Ubuntu18.04_amd64.v${MY_PV}.deb"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
RESTRICT="mirror"
DEPEND="acct-group/unifi-video
acct-user/unifi-video
app-arch/zip"
RDEPEND="${DEPEND}
dev-db/mongodb
dev-java/commons-daemon
sys-apps/lsb-release
sys-apps/util-linux
sys-libs/libcap
virtual/jre:1.8"
S=${WORKDIR}
QA_PREBUILT="usr/lib*/${PN}/lib/*.so usr/lib*/${PN}/bin/*"
src_unpack() {
default
unpack "${WORKDIR}"/data.tar.gz
}
src_prepare() {
eapply "${FILESDIR}"/commons-daemon-move.patch
sed -i usr/sbin/${PN} \
-e '/require_root$/d' \
-e '/update_limits$/d' \
-e '/ulimit/d' \
-e '/coredump_filter/d' || die
default
#delete problematic class in bundled log4j
zip -q -d \
usr/lib/unifi-video/lib/log4j-core-2.1.jar \
org/apache/logging/log4j/core/lookup/JndiLookup.class || die
}
src_install() {
export CODEPATH=/usr/lib/${PN}
export DATAPATH=/var/lib/${PN}
LOGPATH=${DATAPATH}/logs
VARLOGPATH=/var/log/${PN}
insinto /usr/lib
doins -r .${CODEPATH}
into /usr
dosbin usr/sbin/unifi-video
keepdir ${LOGPATH}
dodir ${DATAPATH}
fowners -R ${PN}:${PN} ${DATAPATH}
dosym ${LOGPATH} ${VARLOGPATH}
dosym ${LOGPATH} ${CODEPATH}/logs
dosym ${DATAPATH} ${CODEPATH}/data
fperms 500 ${CODEPATH}/bin/ubnt.avtool
fperms 500 ${CODEPATH}/bin/evostreamms
fperms 500 /usr/sbin/${PN}
fowners -R ${PN}:${PN} ${CODEPATH}
fperms -R 0400 ${CODEPATH}/lib/
fperms 500 ${CODEPATH}/lib/
echo "CONFIG_PROTECT=\"${DATAPATH}/system.properties\"" > "${T}"/99${PN}
doenvd "${T}"/99${PN}
dosym ../../../bin/mongod ${CODEPATH}/bin/mongod
newinitd "${FILESDIR}"/${PN}.initd ${PN}
systemd_dounit "${FILESDIR}"/${PN}.service
}
pkg_postinst() {
if [[ ! -f ${DATAPATH}/system.properties ]]; then
cp ${CODEPATH}/etc/system.properties ${DATAPATH}/system.properties
echo uuid=$(uuidgen) >> ${DATAPATH}/system.properties
fi
}