Index: net-mgmt/Makefile =================================================================== --- net-mgmt/Makefile +++ net-mgmt/Makefile @@ -381,6 +381,7 @@ SUBDIR += unifi-devel SUBDIR += unifi-lts SUBDIR += unifi5 + SUBDIR += unifi5-embedded SUBDIR += victorops-nagios SUBDIR += virt-viewer SUBDIR += wdiag Index: net-mgmt/unifi5-embedded/Makefile =================================================================== --- net-mgmt/unifi5-embedded/Makefile +++ net-mgmt/unifi5-embedded/Makefile @@ -0,0 +1,123 @@ +# Created by: Lev Serebryakov +# $FreeBSD$ + +PORTNAME= unifi5-embedded +PORTVERSION= 5.12.35 +CATEGORIES= net-mgmt java +MASTER_SITES= http://dl.ubnt.com/unifi/${PORTVERSION}/:unifi \ + https://repo1.maven.org/maven2/javax/activation/activation/1.1/:activation +DISTFILES= unifi_sysvinit_all.deb:unifi \ + ${JAVAX_ACTIVATION}:activation +DIST_SUBDIR= ${PORTNAME}-${PORTVERSION} +EXTRACT_ONLY= unifi_sysvinit_all.deb + +MAINTAINER= lev@FreeBSD.org +COMMENT= UniFi Controller v5 - self-contained version + +LICENSE= UIEULA GPLv2 +LICENSE_COMB= multi +LICENSE_NAME_UIEULA= Ubiquti End User License Agreement +LICENSE_TEXT_UIEULA= Read EULA at https://www.ui.com/eula/ +LICENSE_PERMS_UIEULA= no-dist-mirror no-dist-sell no-pkg-mirror no-pkg-sell no-auto-accept + +BUILD_DEPENDS= snappyjava>0:archivers/snappy-java +RUN_DEPENDS= mongodb36>0:databases/mongodb36 + +USES= cpe +CPE_VENDOR= ubnt +CPE_PRODUCT= unifi_controller + +SUB_LIST= USERS=${USERS} GROUPS=${GROUPS} JAVASHAREDIR=${JAVASHAREDIR} \ + JAVA=${JAVA} JAVAX_ACTIVATION=${JAVAX_ACTIVATION} + +EXTRACT_CMD= ${TAR} +EXTRACT_BEFORE_ARGS= --to-stdout -xf +EXTRACT_AFTER_ARGS= data.tar.xz | ${TAR} -xf - + +NO_ARCH= yes + +USE_RC_SUBR= unifi + +USERS= unifi +GROUPS= unifi + +NO_WRKSUBDIR= yes + +CONFLICTS= unifi-devel* \ + unifi-lts*\ + unifi5-[0-9]* + +CONFLICTS_INSTALL= snappyjava-* + +OPTIONS_DEFAULT= JDK11 +OPTIONS_SINGLE= JDK +OPTIONS_SINGLE_JDK= JDK11 JDK12 JDK13 +JDK_DESC= Which JDK use to make dedicated JRE +JDK11_DESC= OpenJDK 11 (LTS) +JDK12_DESC= OpenJDK 12 +JDK13_DESC= OpenJDK 13 + +JDK11_BUILD_DEPENDS= ${LOCALBASE}/openjdk11/bin/jdeps:java/openjdk11 +JDK12_BUILD_DEPENDS= ${LOCALBASE}/openjdk12/bin/jdeps:java/openjdk12 +JDK13_BUILD_DEPENDS= ${LOCALBASE}/openjdk13/bin/jdeps:java/openjdk13 + +.include + +.if ${PORT_OPTIONS:MJDK11} +JDK_PATH= ${LOCALBASE}/openjdk11 +JDK_VER= 11 +JDEPS_SKIP_MISSED= +.elif ${PORT_OPTIONS:MJDK12} +JDK_PATH= ${LOCALBASE}/openjdk12 +JDK_VER= 12 +JDEPS_SKIP_MISSED= --ignore-missing-deps +.elif ${PORT_OPTIONS:MJDK13} +JDK_PATH= ${LOCALBASE}/openjdk13 +JDK_VER= 13 +JDEPS_SKIP_MISSED= --ignore-missing-deps +.endif + +DIR_LIST= conf data jre logs run work +JAVASHAREDIR= ${LOCALBASE} +JAVA= ${JAVASHAREDIR}/unifi/jre/bin/java + +UNIFI_DIST_PATH= ${WRKSRC}/usr/lib/unifi +JAVAX_ACTIVATION= activation-1.1.jar + +do-build: + ${CP} -f ${LOCALBASE}/share/java/classes/snappy-java.jar ${UNIFI_DIST_PATH}/lib/snappy-java-*.jar + ${RM} -r ${UNIFI_DIST_PATH}/lib/native + ${CP} ${DISTDIR}/${DIST_SUBDIR}/${JAVAX_ACTIVATION} ${UNIFI_DIST_PATH}/lib + ${JDK_PATH}/bin/jdeps -classpath ${UNIFI_DIST_PATH}/lib/\*.jar \ + --multi-release ${JDK_VER} -recursive \ + ${JDEPS_SKIP_MISSED} \ + --list-deps ${UNIFI_DIST_PATH}/lib/*.jar | \ + ${GREP} -v "removed internal" | \ + ${CUT} -d/ -f 1 | \ + ${SORT} -u | \ + ${TR} \\n , | \ + ${SED} 's/ //g' > ${WRKDIR}/jre.deps + ${JDK_PATH}/bin/jlink --compress=2 --no-header-files --no-man-pages \ + --strip-debug --output ${UNIFI_DIST_PATH}/jre \ + --add-modules `${CAT} ${WRKDIR}/jre.deps` + +do-install: + ${MKDIR} ${STAGEDIR}${JAVASHAREDIR}/unifi + (cd ${UNIFI_DIST_PATH} && ${COPYTREE_SHARE} \* ${STAGEDIR}${JAVASHAREDIR}/unifi/) + ${LN} -sf ${PREFIX}/bin/mongod ${STAGEDIR}${JAVASHAREDIR}/unifi/bin/mongod + ${CP} ${LOCALBASE}/lib/libsnappyjava.so ${STAGEDIR}${LOCALBASE}/lib/libsnappyjava.so + @${FIND} -s ${STAGEDIR}${JAVASHAREDIR}/unifi -not -type d | ${SORT} | \ + ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} + @${ECHO} lib/libsnappyjava.so >> ${TMPPLIST} +# Create and record directories that will be writable by unifi +.for dir in ${DIR_LIST} + ${MKDIR} ${STAGEDIR}/${JAVASHAREDIR}/unifi/${dir} + @${ECHO} "@dir(unifi,wheel,) ${JAVASHAREDIR}/unifi/${dir}" >> ${TMPPLIST} +.endfor +# Restore permissions on JRE + ${FIND} ${STAGEDIR}/${JAVASHAREDIR}/unifi/jre -type f -name \*.so | ${XARGS} ${CHMOD} +x + ${FIND} ${STAGEDIR}/${JAVASHAREDIR}/unifi/jre/bin -type f | ${XARGS} ${CHMOD} +x + ${CHMOD} +x ${STAGEDIR}/${JAVASHAREDIR}/unifi/jre/lib/jspawnhelper + ${FIND} ${STAGEDIR}/${JAVASHAREDIR}/unifi/bin -type f | ${XARGS} ${CHMOD} +x + +.include Index: net-mgmt/unifi5-embedded/distinfo =================================================================== --- net-mgmt/unifi5-embedded/distinfo +++ net-mgmt/unifi5-embedded/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1580845173 +SHA256 (unifi5-embedded-5.12.35/unifi_sysvinit_all.deb) = 2212b9f87db558e83b2245de76e0d360bae180720e52e654e8cb2a1dfde9c852 +SIZE (unifi5-embedded-5.12.35/unifi_sysvinit_all.deb) = 99216262 +SHA256 (unifi5-embedded-5.12.35/activation-1.1.jar) = 2881c79c9d6ef01c58e62beea13e9d1ac8b8baa16f2fc198ad6e6776defdcdd3 +SIZE (unifi5-embedded-5.12.35/activation-1.1.jar) = 62983 Index: net-mgmt/unifi5-embedded/files/unifi.in =================================================================== --- net-mgmt/unifi5-embedded/files/unifi.in +++ net-mgmt/unifi5-embedded/files/unifi.in @@ -0,0 +1,60 @@ +#!/bin/sh +# +# Created by: Mark Felder +# $FreeBSD$ +# + +# PROVIDE: unifi +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable `unifi': +# +# unifi_enable="YES" + +. /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_javaflags:="-Djava.awt.headless=true -Xmx1024M"} + +pidfile="/var/run/unifi/${name}.pid" +procname=%%JAVA%% +command="/usr/sbin/daemon" +command_args="-f -p ${pidfile} %%JAVA%% -cp lib/%%JAVAX_ACTIVATION%%:lib/ace.jar ${unifi_javaflags} com/ubnt/ace/Launcher start" +start_precmd=start_precmd +stop_precmd=stop_precmd +stop_postcmd=stop_postcmd + +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" Index: net-mgmt/unifi5-embedded/pkg-descr =================================================================== --- net-mgmt/unifi5-embedded/pkg-descr +++ net-mgmt/unifi5-embedded/pkg-descr @@ -0,0 +1,6 @@ +The UniFi Controller allows you to manage Wireless, Routing & Switching, +VoIP and Video of Ubiquiti Networks. + +This version includes its own JRE and is self-contained. + +WWW: http://wiki.ubnt.com/UniFi_FAQ