commit:     f66b68c65f82d22b0d23ecf007e01acb5a0c2a7d
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  9 22:53:46 2022 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Wed Feb  9 22:56:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f66b68c6

net-wireless/unifi: force java8

As UniFi needs Java8, we need to force Java8, even, when user-vm or
system-vm is set to a higher version.

This is accompilshed by creating a launcher with java-pkg_dolauncher.

Bug: https://bugs.gentoo.org/792279
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 net-wireless/unifi/files/unifi.initd-r2   | 22 +++++++
 net-wireless/unifi/files/unifi.service-r1 | 14 +++++
 net-wireless/unifi/unifi-7.0.21-r1.ebuild | 96 +++++++++++++++++++++++++++++++
 3 files changed, 132 insertions(+)

diff --git a/net-wireless/unifi/files/unifi.initd-r2 
b/net-wireless/unifi/files/unifi.initd-r2
new file mode 100644
index 000000000000..ccab8df7fd7a
--- /dev/null
+++ b/net-wireless/unifi/files/unifi.initd-r2
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 1999-2022 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+unifi_exec="/usr/bin/unifi"
+unifi_path="/usr/lib/unifi"
+
+unifi_user="unifi"
+unifi_group="unifi"
+
+name="UniFi Controller"
+
+start_stop_daemon_args="--chdir ${unifi_path}"
+
+command="${unifi_exec}"
+command_args="start"
+command_background=true
+command_progress=true
+command_user="${unifi_user}:${unifi_group}"
+
+pidfile="/run/${RC_SVCNAME}.pid"
+retry=TERM/60

diff --git a/net-wireless/unifi/files/unifi.service-r1 
b/net-wireless/unifi/files/unifi.service-r1
new file mode 100644
index 000000000000..a9b98e25de41
--- /dev/null
+++ b/net-wireless/unifi/files/unifi.service-r1
@@ -0,0 +1,14 @@
+[Unit]
+Description=UniFi Controller
+After=network-online.target
+
+[Service]
+Type=simple
+User=unifi
+Group=unifi
+WorkingDirectory=/usr/lib/unifi
+ExecStart=/usr/bin/unifi start
+ExecStop=/usr/bin/unifi stop
+
+[Install]
+WantedBy=network.target

diff --git a/net-wireless/unifi/unifi-7.0.21-r1.ebuild 
b/net-wireless/unifi/unifi-7.0.21-r1.ebuild
new file mode 100644
index 000000000000..cd05b6851cd0
--- /dev/null
+++ b/net-wireless/unifi/unifi-7.0.21-r1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Set this var for any releases except stable
+RC_SUFFIX="-ebd087e2ad"
+
+inherit java-pkg-2 systemd
+
+DESCRIPTION="A Management Controller for Ubiquiti Networks UniFi APs"
+HOMEPAGE="https://www.ubnt.com";
+SRC_URI="https://dl.ui.com/unifi/${PV}${RC_SUFFIX}/UniFi.unix.zip -> ${P}.zip"
+S="${WORKDIR}/UniFi"
+
+KEYWORDS="-* ~amd64 ~arm64"
+LICENSE="Apache-1.0 Apache-2.0 BSD-1 BSD-2 BSD CDDL EPL-1.0 GPL-2 LGPL-2.1 
LGPL-3 MIT ubiquiti"
+SLOT="0/$(ver_cut 1-2)"
+IUSE="systemd"
+RESTRICT="bindist mirror"
+
+RDEPEND="
+       acct-group/unifi
+       acct-user/unifi
+       dev-db/mongodb
+       virtual/jre:1.8
+"
+
+BDEPEND="app-arch/unzip"
+
+DOCS=( "readme.txt" )
+
+QA_PREBUILT="usr/lib/unifi/lib/native/Linux/x86_64/*.so"
+
+src_prepare() {
+       # Remove unneeded files Mac and Windows
+       rm -r lib/native/{Mac,Windows} || die
+
+       if [[ ${CHOST} != aarch64* ]]; then
+               rm -r lib/native/Linux/aarch64 || die "Failed in removing 
aarch64 native libraries"
+       fi
+       if [[ ${CHOST} != armv7* ]]; then
+               rm -r lib/native/Linux/armv7 || die "Failed in removing armv7 
native libraries"
+       fi
+       if [[ ${CHOST} != x86_64* ]]; then
+               rm -r lib/native/Linux/x86_64 || die "Failed in removing x86_64 
native libraries"
+       fi
+
+       if [[ ${CHOST} == aarch64* ]]; then
+               if ! use systemd; then
+                       rm lib/native/Linux/aarch64/libubnt_sdnotify_jni.so || 
die
+               fi
+       fi
+       if [[ ${CHOST} == armv7* ]]; then
+               if ! use systemd; then
+                       rm lib/native/Linux/armv7/libubnt_sdnotify_jni.so || die
+               fi
+       fi
+       if [[ ${CHOST} == x86_64* ]]; then
+               if ! use systemd; then
+                       rm lib/native/Linux/x86_64/libubnt_sdnotify_jni.so || 
die
+               fi
+       fi
+
+       default
+}
+
+src_compile() {
+       :;
+}
+
+src_install() {
+       insinto /usr/lib/unifi
+       doins -r bin dl lib webapps
+
+       diropts -o unifi -g unifi
+       keepdir /var/lib/unifi/{conf,data,run,tmp,work} /var/log/unifi
+
+       for symlink in conf data run tmp work; do
+               dosym ../../../var/lib/unifi/${symlink} 
/usr/lib/unifi/${symlink}
+       done
+       dosym ../../../var/log/unifi /usr/lib/unifi/logs
+
+       java-pkg_regjar "${D}"/usr/lib/unifi/lib/*.jar
+       java-pkg_dolauncher unifi --java_args 
'-Dorg.xerial.snappy.tempdir=/usr/lib/unifi/tmp -Djava.library.path=' --jar 
ace.jar --pwd '/usr/lib/unifi'
+
+       newinitd "${FILESDIR}"/unifi.initd-r2 unifi
+       systemd_dounit "${FILESDIR}"/unifi.service
+
+       newconfd "${FILESDIR}"/unifi.confd unifi
+
+       echo 'CONFIG_PROTECT="/var/lib/unifi"' > "${T}"/99unifi || die
+       doenvd "${T}"/99unifi
+
+       einstalldocs
+}

Reply via email to