Index: head/net-mgmt/unifi5/Makefile =================================================================== --- head/net-mgmt/unifi5/Makefile (revision 512280) +++ head/net-mgmt/unifi5/Makefile (revision 512281) @@ -1,69 +1,81 @@ # Created by: Alban MAIRE # $FreeBSD$ PORTNAME= unifi5 -PORTVERSION= 5.11.39 +PORTVERSION= 5.11.46 PORTREVISION= 0 CATEGORIES= net-mgmt java -MASTER_SITES= http://dl.ubnt.com/unifi/${PORTVERSION}/ -DISTNAME= unifi_sysvinit_all -EXTRACT_SUFX= .deb +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 +EXTRACT_ONLY= unifi_sysvinit_all.deb + DIST_SUBDIR= ${PORTNAME}-${PORTVERSION} MAINTAINER= feld@FreeBSD.org COMMENT= UniFi Controller v5 RUN_DEPENDS= mongodb36>0:databases/mongodb36 \ snappyjava>0:archivers/snappy-java SUB_LIST+= USERS=${USERS} GROUPS=${GROUPS} JAVASHAREDIR=${JAVASHAREDIR} \ - JAVA=${JAVA} + JAVA=${JAVA} JAVA_HOME=${JAVA_HOME} EXTRACT_CMD= /usr/bin/ar EXTRACT_BEFORE_ARGS= -p EXTRACT_AFTER_ARGS= data.tar.xz | ${TAR} -xf - USES= cpe CPE_VENDOR= ubnt CPE_PRODUCT= unifi_controller USE_JAVA= yes -JAVA_VERSION= 1.8 +JAVA_VERSION= 8+ JAVA_OS= native JAVA_VENDOR= openjdk bsdjava JAVA_RUN= yes NO_BUILD= yes NO_ARCH= yes USE_RC_SUBR= unifi USERS= unifi GROUPS= unifi +JAX_DISTNAME= javax.activation-api +JAX_VERSION= 1.2.0 + NO_WRKSUBDIR= yes CONFLICTS= unifi-devel-* DIR_LIST= conf data logs run work + +post-extract: + ${CP} ${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/) ${LN} -sf ${PREFIX}/bin/mongod ${STAGEDIR}${JAVASHAREDIR}/unifi/bin/mongod # Create directories that will be writable by unifi .for i in data logs run work ${MKDIR} ${STAGEDIR}/${JAVASHAREDIR}/unifi/${i} .endfor 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 Index: head/net-mgmt/unifi5/distinfo =================================================================== --- head/net-mgmt/unifi5/distinfo (revision 512280) +++ head/net-mgmt/unifi5/distinfo (revision 512281) @@ -1,3 +1,5 @@ -TIMESTAMP = 1568307406 -SHA256 (unifi5-5.11.39/unifi_sysvinit_all.deb) = d2736dababcf96596a2c9ad82ee2fcbd02ee4d3a864284175b43f5afdab62f6c -SIZE (unifi5-5.11.39/unifi_sysvinit_all.deb) = 97384556 +TIMESTAMP = 1568823069 +SHA256 (unifi5-5.11.46/unifi_sysvinit_all.deb) = 05318bcfa94efc069f53150c4af82da2fe0e77d4e6544e35a64224d8836e4db0 +SIZE (unifi5-5.11.46/unifi_sysvinit_all.deb) = 97379754 +SHA256 (unifi5-5.11.46/javax.activation-api-1.2.0.jar) = 43fdef0b5b6ceb31b0424b208b930c74ab58fac2ceeb7b3f6fd3aeb8b5ca4393 +SIZE (unifi5-5.11.46/javax.activation-api-1.2.0.jar) = 56674 Index: head/net-mgmt/unifi5/files/unifi.in =================================================================== --- head/net-mgmt/unifi5/files/unifi.in (revision 512280) +++ head/net-mgmt/unifi5/files/unifi.in (revision 512281) @@ -1,60 +1,86 @@ #!/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" +# +# 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_javaflags:="-Djava.awt.headless=true -Xmx1024M"} +: ${unifi_java_home=%%JAVA_HOME%%} +: ${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%% ${unifi_javaflags} -jar lib/ace.jar start" +procname=${unifi_java_home}/bin/java +command=/usr/sbin/daemon +command_args="-f -p ${pidfile} ${unifi_java_home}/bin/java ${unifi_javaflags} com.ubnt.ace.Launcher 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"