net-mgmt/unifi8: Add new port

Add unifi network application version 8.0.7.

Release notes: https://community.ui.com/releases/r/network/8.0.7
This commit is contained in:
Juraj Lutter 2023-11-21 14:06:59 +01:00
parent cb3015f838
commit 7047c75f94
6 changed files with 214 additions and 0 deletions

View file

@ -395,6 +395,7 @@
SUBDIR += triton-guesttools
SUBDIR += unbound_exporter
SUBDIR += unifi7
SUBDIR += unifi8
SUBDIR += victoria-metrics
SUBDIR += virt-viewer
SUBDIR += vmutils

98
net-mgmt/unifi8/Makefile Normal file
View file

@ -0,0 +1,98 @@
PORTNAME= unifi8
PORTVERSION= 8.0.7
CATEGORIES= net-mgmt java
MASTER_SITES= http://dl.ubnt.com/unifi/%SUBDIR%/:unifi \
https://repo1.maven.org/maven2/%SUBDIR%/:jax
MASTER_SITE_SUBDIR= ${PORTVERSION}/:unifi \
javax/activation/${_JAX_DISTNAME}/${_JAX_VERSION}/:jax
DISTFILES= unifi_sysvinit_all.deb:unifi \
${_JAX_DISTNAME}-${_JAX_VERSION}.jar:jax
DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}
EXTRACT_ONLY= unifi_sysvinit_all.deb
MAINTAINER= otis@FreeBSD.org
COMMENT= UniFi Controller v8
WWW= https://help.ui.com/hc/en-us/categories/200320654-UniFi-Wireless
RUN_DEPENDS= snappyjava>0:archivers/snappy-java
FLAVORS= default externaldb
FLAVOR?= ${FLAVORS:[1]}
externaldb_PKGNAMESUFFIX= -externaldb
USES= cpe
CPE_VENDOR= ui
CPE_PRODUCT= unifi_controller
USE_JAVA= yes
JAVA_VERSION= 17
JAVA_RUN= jre
USE_RC_SUBR= unifi
CONFLICTS_INSTALL= unifi7
EXTRACT_CMD= ${AR}
EXTRACT_BEFORE_ARGS= -p
EXTRACT_AFTER_ARGS= data.tar.xz | ${TAR} -xf -
NO_ARCH= yes
NO_BUILD= yes
SUB_FILES= pkg-message
SUB_LIST+= GROUPS=${GROUPS} \
JAVA=${JAVA} \
JAVA_HOME=${JAVA_HOME} \
JAVASHAREDIR=${JAVASHAREDIR} \
USERS=${USERS}
NO_WRKSUBDIR= yes
USERS= unifi
GROUPS= unifi
OPTIONS_DEFINE= EXTERNALDB
.if ${FLAVOR:U} == externaldb
OPTIONS_DEFAULT+= EXTERNALDB
.endif
EXTERNALDB_DESC= Use external MongoDB server
EXTERNALDB_VARS= PKGMESSAGE+=${WRKSRC}/pkg-message.extdb \
SUB_FILES+=pkg-message.extdb
EXTERNALDB_VARS_OFF= RUN_DEPENDS+=mongodb44>0:databases/mongodb44
_DIR_LIST= conf data logs run work
_JAX_DISTNAME= javax.activation-api
_JAX_VERSION= 1.2.0
post-extract:
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${_JAX_DISTNAME}-${_JAX_VERSION}.jar \
${WRKSRC}/usr/lib/unifi/lib/
post-patch:
(cd ${WRKSRC}/usr/lib/unifi/lib && \
${LN} -f -s ${JAVAJARDIR}/snappy-java.jar snappy-java-*.jar)
${RM} -r ${WRKSRC}/usr/lib/unifi/lib/native
do-install:
${MKDIR} ${STAGEDIR}${JAVASHAREDIR}/unifi
(cd ${WRKSRC}/usr/lib/unifi && \
${COPYTREE_SHARE} \* ${STAGEDIR}${JAVASHAREDIR}/unifi/)
# Create directories that will be writable by unifi
.for i in data logs run work
${MKDIR} ${STAGEDIR}/${JAVASHAREDIR}/unifi/${i}
.endfor
do-install-EXTERNALDB-off:
${LN} -sf ${PREFIX}/bin/mongod ${STAGEDIR}${JAVASHAREDIR}/unifi/bin/mongod
post-install:
@${FIND} -s ${STAGEDIR}${JAVASHAREDIR}/unifi -not -type d | \
${SORT} | ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
.for dir in ${_DIR_LIST}
@${ECHO} "@dir(unifi,wheel,) ${JAVASHAREDIR}/unifi/${dir}" >> \
${TMPPLIST}
.endfor
.include <bsd.port.mk>

5
net-mgmt/unifi8/distinfo Normal file
View file

@ -0,0 +1,5 @@
TIMESTAMP = 1700570453
SHA256 (unifi8-8.0.7/unifi_sysvinit_all.deb) = 4221d7a0f8ce66c58a4f71b70ba6f32e16310429d3fe8165bf0f47bbdb6401a6
SIZE (unifi8-8.0.7/unifi_sysvinit_all.deb) = 137857346
SHA256 (unifi8-8.0.7/javax.activation-api-1.2.0.jar) = 43fdef0b5b6ceb31b0424b208b930c74ab58fac2ceeb7b3f6fd3aeb8b5ca4393
SIZE (unifi8-8.0.7/javax.activation-api-1.2.0.jar) = 56674

View file

@ -0,0 +1,19 @@
[
{ type: install
message: <<EOM
In order to use the external MongoDB server, put the following lines
into %%JAVASHAREDIR%%/unifi/data/system.properties file:
db.mongo.local=false
db.mongo.uri=mongodb://ubnt:password@IP_ADDRESS:PORT/unifi-test
statdb.mongo.uri=mongodb://ubnt:password@IP_ADDRESS:PORT/unifi-test_stat
unifi.db.name=unifi-test
Adjust username, password, IP_ADDRESS, PORT and database name
according to your needs.
For more information see:
https://community.ui.com/questions/External-MongoDB-Server/d311a8f8-43b6-4aeb-859d-eefec9dc1bbc
EOM
}
]

View file

@ -0,0 +1,89 @@
#!/bin/sh
#
# Created by: Mark Felder <feld@FreeBSD.org>
# PROVIDE: unifi
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable `unifi':
#
# unifi_enable="YES"
#
# Other configuration settings for unifi that can be set in /etc/rc.conf:
#
# unifi_user (str)
# This is the user that unifi runs as
# Set to %%USERS%% by default
#
# unifi_group (str)
# This is the group that unifi runs as
# Set to %%GROUPS%% by default
#
# unifi_chdir (str)
# This is the directory that unifi chdirs into before starting
# Set to %%JAVASHAREDIR%%/unifi by default
#
# unifi_java_home (str)
# The path to the base directory for the Java to use to run unifi
# Defaults to %%JAVA_HOME%%
#
# unifi_javaflags (str)
# Flags passed to Java to run unifi
# Set to "-Djava.awt.headless=true -Xmx1024M" by default
#
. /etc/rc.subr
name=unifi
rcvar=unifi_enable
load_rc_config ${name}
: ${unifi_enable:=NO}
: ${unifi_user:=%%USERS%%}
: ${unifi_group:=%%GROUPS%%}
: ${unifi_chdir=%%JAVASHAREDIR%%/unifi}
: ${unifi_java_home=%%JAVA_HOME%%}
: ${unifi_javaflags="-Djava.awt.headless=true -Xmx1024M \
--add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.time=ALL-UNNAMED \
--add-opens java.base/sun.security.util=ALL-UNNAMED \
--add-opens java.base/java.io=ALL-UNNAMED \
--add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED"}
pidfile="/var/run/unifi/${name}.pid"
procname=${unifi_java_home}/bin/java
command=/usr/sbin/daemon
command_args="-f -p ${pidfile} ${unifi_java_home}/bin/java ${unifi_javaflags} -jar lib/ace.jar start"
start_precmd=start_precmd
stop_precmd=stop_precmd
stop_postcmd=stop_postcmd
export CLASSPATH=$(echo ${unifi_chdir}/lib/*.jar | tr ' ' ':')
start_precmd()
{
if [ ! -e /var/run/unifi ] ; then
install -d -o %%USERS%% -g %%GROUPS%% /var/run/unifi;
fi
}
stop_precmd()
{
if [ -r ${pidfile} ]; then
_UNIFIPID=$(check_pidfile ${pidfile} ${procname})
export _UNIFI_CHILDREN=$(pgrep -P ${_UNIFIPID})
fi
}
stop_postcmd()
{
if ! [ -z ${_UNIFI_CHILDREN} ]; then
echo "Cleaning up leftover child processes."
kill $sig_stop ${_UNIFI_CHILDREN}
wait_for_pids ${_UNIFI_CHILDREN}
fi
}
run_rc_command "$1"

View file

@ -0,0 +1,2 @@
The UniFi Controller allows you to manage Wireless, Routing & Switching,
VoIP and Video of Ubiquiti Networks.