Date: Tue, 21 Aug 2012 19:31:51 +0700 (NOVT) From: Eugene Grosbein <ports@grosbein.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/170819: New port: net-mgmt/UniFi UniFi Wireless Controller Message-ID: <201208211231.q7LCVpfM066606@k-45-monitor.sd.rdtc.ru> Resent-Message-ID: <201208211240.q7LCeAfi097658@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 170819 >Category: ports >Synopsis: New port: net-mgmt/UniFi UniFi Wireless Controller >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Aug 21 12:40:10 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Eugene Grosbein >Release: FreeBSD 9.1-PRERELEASE amd64 >Organization: RDTC JSC >Environment: System: FreeBSD k-45-monitor 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #6: Wed Aug 15 16:24:32 NOVT 2012 root@k-45-monitor:/usr/obj/usr/local/src/sys/K-45-MONITOR amd64 >Description: This is new port for the UniFi Wireless Controler - java-based server-side software to control UniFi Access Points using web interface. Please note that original zip file contains proprietary firmware images for access points and the license prohibits their redistribution. Also, the user must accept license agreement on-site to download the distibution file, so MASTER_SITES is empty (contents commented out). >How-To-Repeat: N/A >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # UniFi # UniFi/Makefile # UniFi/distinfo # UniFi/pkg-descr # UniFi/pkg-plist # UniFi/files # UniFi/files/UniFi.in # UniFi/files/pkg-deinstall.in # echo c - UniFi mkdir -p UniFi > /dev/null 2>&1 echo x - UniFi/Makefile sed 's/^X//' >UniFi/Makefile << '6493abb108342c994405f3f0c0b569ee' X# New ports collection makefile for: UniFi X# Date created: 21 August 2012 X# Whom: Eugene Grosbein <ports@grosbein.net> X# X# $FreeBSD$ X# X XPORTNAME= UniFi XPORTVERSION= 2.3.5 XCATEGORIES= net-mgmt java XMASTER_SITES= #http://www.ubnt.com/downloads/unifi/2.3.5/ XDISTNAME= ${PORTNAME}.unix XDIST_SUBDIR= ${PORTNAME}-${PORTVERSION} X XMAINTAINER= ports@grosbein.net XCOMMENT= UniFi Wireless Controller X XRUN_DEPENDS= mongodb>=1.6.5:${PORTSDIR}/databases/mongodb X XSUB_FILES= pkg-deinstall XSUB_LIST= PORTNAME=${PORTNAME} USERS=${USERS} GROUPS=${GROUPS} X XWRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} X XUSE_ZIP= yes X XUSE_JAVA= yes XJAVA_VERSION= 1.6+ XJAVA_OS= native XJAVA_VENDOR= openjdk bsdjava XJAVA_RUN= yes X XDATADIR= ${JAVASHAREDIR}/${PORTNAME} XNO_BUILD= yes X XUSE_RC_SUBR= ${PORTNAME} X XUSERS= unifi XGROUPS= unifi X XRESTRICTED= Redistribution of bundled firmware images is not permitted X X.include <bsd.port.pre.mk> X X.if !defined(PACKAGE_BUILDING) && (!exists(${DISTDIR}/${DIST_SUBDIR}/${DISTNAME}.zip)) XDISTFILE_INSTRUCTIONS=\n\ XDue to licensing restrictions, distribution file must be fetched manually.\n\ XPlease download the file to ${DISTDIR}/${DIST_SUBDIR}/${DISTNAME}.zip from: \n\n\ Xhttp://www.ubnt.com/downloads/unifi/${PORTVERSION}/${DISTNAME}.zip\n\n X.endif X X.if defined(DISTFILE_INSTRUCTIONS) Xpre-fetch: X @${PRINTF} "${DISTFILE_INSTRUCTIONS}" X @exit 1 X.endif X Xpost-extract: X @${MV} ${WRKDIR}/${PORTNAME} ${WRKSRC} X @${ECHO} system_ip=0.0.0.0 >> ${WRKSRC}/data/system.properties X Xdo-install: X @( cd ${WRKSRC} && \ X ${COPYTREE_SHARE} "bin data dl lib webapps readme.txt" ${DATADIR} \ X '! -path data/system.properties' && \ X ${MKDIR} ${DATADIR}/conf && \ X for f in conf/catalina.policy conf/catalina.properties \ X conf/context.xml conf/server.xml conf/tomcat-users.xml \ X conf/web.xml data/system.properties; \ X do ${CP} -p $$f ${DATADIR}/$$f.sample && \ X if [ ! -f ${DATADIR}/$$f ]; then \ X ${CP} -p $$f ${DATADIR}/$$f; \ X fi; \ X done; \ X ) X @${CHOWN} -R ${USERS}:${GROUPS} ${DATADIR} X @${CHMOD} -R g+w ${DATADIR}/* X @${LN} -sf ${PREFIX}/bin/mongod ${DATADIR}/bin/ X X.include <bsd.port.post.mk> 6493abb108342c994405f3f0c0b569ee echo x - UniFi/distinfo sed 's/^X//' >UniFi/distinfo << 'bd662b9b933319e0a9ae8bbb1ccd7c20' XSHA256 (UniFi-2.3.5/UniFi.unix.zip) = 27c304744bea3224048773658259368b54c37071c3d15fc538cc58c56427f22a XSIZE (UniFi-2.3.5/UniFi.unix.zip) = 22650879 bd662b9b933319e0a9ae8bbb1ccd7c20 echo x - UniFi/pkg-descr sed 's/^X//' >UniFi/pkg-descr << 'bcf3a6f93eef3e49af172f8445a33804' XThe UniFi Controller allows to manage the UniFi Wireless Network. X XWWW: http://wiki.ubnt.com/UniFi_FAQ bcf3a6f93eef3e49af172f8445a33804 echo x - UniFi/pkg-plist sed 's/^X//' >UniFi/pkg-plist << '199d70a395bfd59bb4417f4e3b5a1864' X%%DATADIR%%/bin/mongod X@unexec if cmp -s %D/%%DATADIR%%/conf/catalina.policy.sample %D/%%DATADIR%%/conf/catalina.policy; then rm -f %D/%%DATADIR%%/conf/catalina.policy; fi X%%DATADIR%%/conf/catalina.policy.sample X@exec if [ ! -f %D/%%DATADIR%%/conf/catalina.policy ]; then cp -p %F %D/%%DATADIR%%/catalina.policy; fi X@unexec if cmp -s %D/%%DATADIR%%/conf/catalina.properties.sample %D/%%DATADIR%%/conf/catalina.properties; then rm -f %D/%%DATADIR%%/conf/catalina.properties; fi X%%DATADIR%%/conf/catalina.properties.sample X@exec if [ ! -f %D/%%DATADIR%%/conf/catalina.properties ]; then cp -p %F %D/%%DATADIR%%/catalina.properties; fi X@unexec if cmp -s %D/%%DATADIR%%/conf/context.xml.sample %D/%%DATADIR%%/conf/context.xml; then rm -f %D/%%DATADIR%%/conf/context.xml; fi X%%DATADIR%%/conf/context.xml.sample X@exec if [ ! -f %D/%%DATADIR%%/conf/context.xml ]; then cp -p %F %D/%%DATADIR%%/context.xml; fi X@unexec if cmp -s %D/%%DATADIR%%/conf/server.xml.sample %D/%%DATADIR%%/conf/server.xml; then rm -f %D/%%DATADIR%%/conf/server.xml; fi X%%DATADIR%%/conf/server.xml.sample X@exec if [ ! -f %D/%%DATADIR%%/conf/server.xml ]; then cp -p %F %D/%%DATADIR%%/server.xml; fi X@unexec if cmp -s %D/%%DATADIR%%/conf/tomcat-users.xml.sample %D/%%DATADIR%%/conf/tomcat-users.xml; then rm -f %D/%%DATADIR%%/conf/tomcat-users.xml; fi X%%DATADIR%%/conf/tomcat-users.xml.sample X@exec if [ ! -f %D/%%DATADIR%%/conf/tomcat-users.xml ]; then cp -p %F %D/%%DATADIR%%/tomcat-users.xml; fi X@unexec if cmp -s %D/%%DATADIR%%/conf/web.xml.sample %D/%%DATADIR%%/conf/web.xml; then rm -f %D/%%DATADIR%%/conf/web.xml; fi X%%DATADIR%%/conf/web.xml.sample X@exec if [ ! -f %D/%%DATADIR%%/conf/web.xml ]; then cp -p %F %D/%%DATADIR%%/web.xml; fi X@unexec if cmp -s %D/%%DATADIR%%/data/system.properties.sample %D/%%DATADIR%%/data/system.properties; then rm -f %D/%%DATADIR%%/data/system.properties; fi X%%DATADIR%%/data/system.properties.sample X@exec if [ ! -f %D/%%DATADIR%%/data/system.properties ]; then cp -p %F %D/%%DATADIR%%/data/system.properties; fi X%%DATADIR%%/dl/firmware/BZ2/2.3.5.954/firmware.bin X%%DATADIR%%/dl/firmware/U7P/2.3.5.954/firmware.bin X%%DATADIR%%/dl/firmware/bundles.json X%%DATADIR%%/lib/MRJAdapter.jar X%%DATADIR%%/lib/ace.jar X%%DATADIR%%/lib/annotations-api.jar X%%DATADIR%%/lib/asm.jar X%%DATADIR%%/lib/bootstrap.jar X%%DATADIR%%/lib/catalina-ant.jar X%%DATADIR%%/lib/catalina-ha.jar X%%DATADIR%%/lib/catalina-tribes.jar X%%DATADIR%%/lib/catalina.jar X%%DATADIR%%/lib/cglib.jar X%%DATADIR%%/lib/commons-beanutils.jar X%%DATADIR%%/lib/commons-codec-1.4.jar X%%DATADIR%%/lib/commons-collections.jar X%%DATADIR%%/lib/commons-daemon.jar X%%DATADIR%%/lib/commons-digester.jar X%%DATADIR%%/lib/commons-httpclient-3.1.jar X%%DATADIR%%/lib/commons-lang.jar X%%DATADIR%%/lib/commons-logging.jar X%%DATADIR%%/lib/dom4j.jar X%%DATADIR%%/lib/el-api.jar X%%DATADIR%%/lib/jasper-el.jar X%%DATADIR%%/lib/jasper-jdt.jar X%%DATADIR%%/lib/jasper.jar X%%DATADIR%%/lib/javassist.jar X%%DATADIR%%/lib/jmdns.jar X%%DATADIR%%/lib/jsp-api.jar X%%DATADIR%%/lib/jstl.jar X%%DATADIR%%/lib/jstun-0.7.3.jar X%%DATADIR%%/lib/jul-log4j-bridge.jar X%%DATADIR%%/lib/log4j.jar X%%DATADIR%%/lib/mail.jar X%%DATADIR%%/lib/mongo.jar X%%DATADIR%%/lib/org.springframework.config.java-1.0.0.M4.jar X%%DATADIR%%/lib/quartz-all-1.6.1.jar X%%DATADIR%%/lib/servlet-api.jar X%%DATADIR%%/lib/slf4j-api.jar X%%DATADIR%%/lib/slf4j-log4j12.jar X%%DATADIR%%/lib/spring-aop-2.5.6.jar X%%DATADIR%%/lib/spring-beans-2.5.6.jar X%%DATADIR%%/lib/spring-context-2.5.6.jar X%%DATADIR%%/lib/spring-context-support-2.5.6.jar X%%DATADIR%%/lib/spring-core-2.5.6.jar X%%DATADIR%%/lib/spring-web-2.5.6.jar X%%DATADIR%%/lib/sshj.jar X%%DATADIR%%/lib/standard.jar X%%DATADIR%%/lib/tomcat-coyote.jar X%%DATADIR%%/lib/tomcat-dbcp.jar X%%DATADIR%%/lib/tomcat-i18n-es.jar X%%DATADIR%%/lib/tomcat-i18n-fr.jar X%%DATADIR%%/lib/tomcat-i18n-ja.jar X%%DATADIR%%/lib/tomcat-juli-adapters.jar X%%DATADIR%%/lib/tomcat-juli.jar X%%DATADIR%%/readme.txt X%%DATADIR%%/webapps/ROOT.war X@dirrmtry %%DATADIR%%/work/Catalina/localhost/_ X@dirrmtry %%DATADIR%%/work/Catalina/localhost X@dirrmtry %%DATADIR%%/work/Catalina X@dirrmtry %%DATADIR%%/work X@dirrmtry %%DATADIR%%/webapps X@dirrm %%DATADIR%%/lib X@dirrm %%DATADIR%%/dl/firmware/U7P/2.3.5.954 X@dirrm %%DATADIR%%/dl/firmware/U7P X@dirrm %%DATADIR%%/dl/firmware/BZ2/2.3.5.954 X@dirrm %%DATADIR%%/dl/firmware/BZ2 X@dirrm %%DATADIR%%/dl/firmware X@dirrm %%DATADIR%%/dl X@dirrmtry %%DATADIR%%/data/backup X@dirrmtry %%DATADIR%%/data X@dirrmtry %%DATADIR%%/conf X@dirrm %%DATADIR%%/bin X@dirrmtry %%DATADIR%% 199d70a395bfd59bb4417f4e3b5a1864 echo c - UniFi/files mkdir -p UniFi/files > /dev/null 2>&1 echo x - UniFi/files/UniFi.in sed 's/^X//' >UniFi/files/UniFi.in << 'ee35482e7baa9edd47bc8454b47b43e5' X#!/bin/sh X# X# $FreeBSD$ X# X X# PROVIDE: UniFi X# REQUIRE: LOGIN X# KEYWORD: shutdown X X# X# Add the following line to /etc/rc.conf to enable `UniFi': X# X# UniFi_enable="YES" X X. /etc/rc.subr X Xcommand_interpreter="." Xcommand="%%PREFIX%%/bin/java" Xcommand_args="-jar lib/ace.jar" Xname="UniFi" Xrcvar="${name}_enable" Xstart_cmd="start_cmd" Xstop_cmd="stop_cmd" Xpidfile="/var/run/${name}.pid" Xrequired_files="%%DATADIR%%/lib/ace.jar" XUniFi_chdir=%%DATADIR%% X Xeval `JAVAVM_DRYRUN=yes ${command} | fgrep JAVAVM_COMMAND` Xprocname=${JAVAVM_COMMAND} X Xstart_cmd() X{ X check_startmsgs && echo "Starting ${name}." X cd ${UniFi_chdir} X daemon -u %%USERS%% -f -p ${pidfile} ${command} ${command_args} start X} X Xstop_cmd() X{ X check_startmsgs && echo "Stopping ${name}." X rc_pid=$(check_pidfile $pidfile $procname) X cd ${UniFi_chdir} X ${command} ${command_args} stop X wait_for_pids $rc_pid X} X Xload_rc_config ${name} X: ${UniFi_enable="NO"} Xrun_rc_command "$1" ee35482e7baa9edd47bc8454b47b43e5 echo x - UniFi/files/pkg-deinstall.in sed 's/^X//' >UniFi/files/pkg-deinstall.in << '2784190a27095d588b76c5331c1863ae' X#!/bin/sh X XPATH=/bin:/usr/bin:/usr/sbin X XUSER=%%USERS%% XGROUP=%%GROUPS%% X Xask() { X local question default answer X X question=$1; shift X while [ $# -gt 1 ] X do X if [ -z "${BATCH}" -a -z "${PACKAGE_BUILDING}" ]; then X echo "$question" >&2 X fi X question=$1; shift X done X X default=$1 X if [ -z "${BATCH}" -a -z "${PACKAGE_BUILDING}" ]; then X read -p "${question} [${default}]? " answer X fi X if [ x${answer} = x ]; then X answer=${default} X fi X echo ${answer} X} X Xyesno() { X local dflt question answer X X question=$1 X dflt=$2 X while :; do X answer=$(ask "$@") X case "${answer}" in X [Yy]*) return 0;; X [Nn]*) return 1;; X esac X echo "Please answer yes or no." X done X} X Xdelete_account() { X local u g X X u=$1 X g=$2 X if yesno "Do you want me to remove group \"${g}\"" y; then X pw groupdel -n ${g} X echo "Done." X fi X if yesno "Do you want me to remove user \"${u}\"" y; then X pw userdel -n ${u} X echo "Done." X fi X} X X[ "$2" = DEINSTALL ] || exit 0 X Xif kill -0 `head -1 /var/run/%%PORTNAME%%.pid 2>/dev/null` 2>/dev/null; then X if yesno "There are some UniFi Controller processes running. Shall I kill them" y X then X service %%PORTNAME%% forcestop X else X echo "OK ... I hope you know what you are doing." X echo "" X fi Xfi X Xif yesno "Whould you like to remove all configs, logs and other staff" \ X "of the UniFi Controller (perform complete uninstallation)" n Xthen X cd %%DATADIR%%/data && \ X rm -rf backup db keystore system.properties update.json X cd .. && rm -rf conf logs webapps/ROOT work X echo "Done." Xfi X Xdelete_account ${USER} ${GROUP} Xexit 0 2784190a27095d588b76c5331c1863ae exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208211231.q7LCVpfM066606>