diff --git a/GIDs b/GIDs index b3542b24f17c..5f4c8c26a2d4 100644 --- a/GIDs +++ b/GIDs @@ -255,7 +255,7 @@ _arti:*:311: _sphinx:*:312: _fastdfs:*:313: promscale:*:314: -# free: 315 +airdcpp:*:315: # free: 316 # free: 317 # free: 318 diff --git a/UIDs b/UIDs index 411248604fa9..8fb07a073615 100644 --- a/UIDs +++ b/UIDs @@ -260,7 +260,7 @@ _arti:*:311:311::0:0:Arti Daemon:/nonexistent:/usr/sbin/nologin _sphinx:*:312:312::0:0:Sphinxsearch Owner:/nonexistent:/usr/sbin/nologin _fastdfs:*:313:313::0:0:FastDFS Owner:/nonexistent:/usr/sbin/nologin promscale:*:314:314::0:0:Promscale:/nonexistent:/usr/sbin/nologin -# free: 315 +airdcpp:*:315:315::0:0:Airdc++ WebClient Daemon:/nonexistent:/usr/sbin/nologin # free: 316 # free: 317 # free: 318 diff --git a/net-p2p/airdcpp-webclient/Makefile b/net-p2p/airdcpp-webclient/Makefile new file mode 100644 index 000000000000..233ca955cbc3 --- /dev/null +++ b/net-p2p/airdcpp-webclient/Makefile @@ -0,0 +1,75 @@ +# Created by: Venim +# $FreeBSD$ + +PORTNAME= airdcpp-webclient +DISTVERSION= 2.11.3 +CATEGORIES= net-p2p +MASTER_SITES= https://airdcpp-web.github.io/ + +MAINTAINER= ven1m@protonmail.com +COMMENT= Peer-to-peer file sharing application for file servers/NAS devices + +LICENSE= MIT + +BUILD_DEPENDS= websocketpp>=0.7.0:devel/websocketpp +LIB_DEPENDS= libboost_regex.so:devel/boost-libs \ + libboost_system.so:devel/boost-libs \ + libboost_thread.so:devel/boost-libs \ + libleveldb.so:databases/leveldb \ + libmaxminddb.so:net/libmaxminddb \ + libminiupnpc.so:net/miniupnpc + +USES= cmake compiler:c++11-lang iconv pkgconfig python ssl +USE_GITHUB= yes +GH_ACCOUNT= airdcpp-web +USE_LDCONFIG= yes +USE_RC_SUBR= airdcppd + +CMAKE_OFF= INSTALL_WEB_UI +ALL_TARGET= all + +ETCDIR?= ${PREFIX}/etc/airdcpp +DATADIR?= ${PREFIX}/share/airdcpp + +USERS= airdcpp +GROUPS= airdcpp + +_AIRDCPP_RUNDIR?= /var/run/airdcppd + +BINARY_ALIAS= python=${PYTHON_CMD} +SUB_FILES= dcppboot.xml pkg-message +SUB_LIST+= AIRDCPP_GROUP=${GROUPS} \ + AIRDCPP_RUNDIR=${_AIRDCPP_RUNDIR} \ + AIRDCPP_USER=${USERS} +PLIST_SUB= ${SUB_LIST} \ + DISTVERSION=${DISTVERSION} + +OPTIONS_DEFINE= WEBUI NATPMP +OPTIONS_DEFINE_amd64= TBB +OPTIONS_DEFINE_i386= TBB + +OPTIONS_DEFAULT= WEBUI NATPMP +OPTIONS_DEFAULT_amd64= TBB +OPTIONS_DEFAULT_i386= TBB + +WEBUI_DESC= Optional AirDC++ Web UI +NATPMP_DESC= Optional NAT-PMP support +TBB_DESC= Optional Intel Threading Building Blocks (TBB) support + +WEBUI_PKG_DEPENDS= airdcpp-webui>=2:net-p2p/airdcpp-webui \ + airdcpp-webui<3:net-p2p/airdcpp-webui +NATPMP_LIB_DEPENDS= libnatpmp.so:net/libnatpmp +NATPMP_CONFIGURE_WITH= natpmp +TBB_LIB_DEPENDS= libtbb.so:devel/tbb +TBB_CONFIGURE_WITH= tbb + +post-install: + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/airdcppd \ + ${STAGEDIR}${PREFIX}/lib/libairdcpp.so.${DISTVERSION} \ + ${STAGEDIR}${PREFIX}/lib/libairdcpp-webapi.so.${DISTVERSION} + + ${MKDIR} ${STAGEDIR}${ETCDIR} ${STAGEDIR}${_AIRDCPP_RUNDIR} + + ${INSTALL_DATA} ${WRKDIR}/dcppboot.xml ${STAGEDIR}${ETCDIR}/dcppboot.xml.sample + +.include diff --git a/net-p2p/airdcpp-webclient/distinfo b/net-p2p/airdcpp-webclient/distinfo new file mode 100644 index 000000000000..105030c30b5f --- /dev/null +++ b/net-p2p/airdcpp-webclient/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1670437007 +SHA256 (airdcpp-web-airdcpp-webclient-2.11.3_GH0.tar.gz) = 64c2ccdcaf352a38bdeb88632d43e9cebf879fef52b6f445f4752193b1ef7dd3 +SIZE (airdcpp-web-airdcpp-webclient-2.11.3_GH0.tar.gz) = 957277 diff --git a/net-p2p/airdcpp-webclient/files/airdcppd.in b/net-p2p/airdcpp-webclient/files/airdcppd.in new file mode 100644 index 000000000000..34bdcce7f063 --- /dev/null +++ b/net-p2p/airdcpp-webclient/files/airdcppd.in @@ -0,0 +1,31 @@ +#!/bin/sh + +# +# PROVIDE: airdcppd +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# airdcppd_enable (bool): Set to NO by default. +# Set it to YES to enable airdcppd. + +. /etc/rc.subr + +name="airdcppd" +rcvar="${name}_enable" +command="%%PREFIX%%/bin/${name}" + +: ${airdcppd_enable:="NO"} +: ${airdcppd_user:="%%AIRDCPP_USER%%"} +: ${airdcppd_group:="%%AIRDCPP_GROUP%%"} +: ${airdcppd_umask:="0002"} +load_rc_config "${name}" + +pidfile="%%AIRDCPP_RUNDIR%%/${name}.pid" +command_args="-d -p=${pidfile}" + +umask ${airdcppd_umask} +run_rc_command "$1" diff --git a/net-p2p/airdcpp-webclient/files/dcppboot.xml.in b/net-p2p/airdcpp-webclient/files/dcppboot.xml.in new file mode 100644 index 000000000000..e1517e73d01c --- /dev/null +++ b/net-p2p/airdcpp-webclient/files/dcppboot.xml.in @@ -0,0 +1,13 @@ + + + %%PREFIX%%/etc/airdcpp/ + diff --git a/net-p2p/airdcpp-webclient/files/patch-scripts_generate__version.sh b/net-p2p/airdcpp-webclient/files/patch-scripts_generate__version.sh new file mode 100644 index 000000000000..c75fd413391c --- /dev/null +++ b/net-p2p/airdcpp-webclient/files/patch-scripts_generate__version.sh @@ -0,0 +1,11 @@ +--- scripts/generate_version.sh.orig 2021-08-04 04:07:43 UTC ++++ scripts/generate_version.sh +@@ -12,7 +12,7 @@ versionDate=`date +%s` + commitCount=0 + + #check if we have a repository +-git ls-remote > /dev/null 2>&1 ++false + if [ $? -ne 0 ];then + echo '-- Not using a Git version' + elif [ `git rev-parse --abbrev-ref HEAD` != "master" ];then diff --git a/net-p2p/airdcpp-webclient/files/pkg-message.in b/net-p2p/airdcpp-webclient/files/pkg-message.in new file mode 100644 index 000000000000..815191ce478a --- /dev/null +++ b/net-p2p/airdcpp-webclient/files/pkg-message.in @@ -0,0 +1,12 @@ +[ +{ type: install + message: < +# $FreeBSD$ + +PORTNAME= airdcpp-webui +DISTVERSION= 2.11.4 +CATEGORIES= net-p2p +MASTER_SITES= https://airdcpp-web.github.io/ + +MAINTAINER= ven1m@protonmail.com +COMMENT= AirDC++ Web UI + +LICENSE= MIT + +FETCH_DEPENDS= npm>=3:www/npm +RUN_DEPENDS= npm>=3:www/npm \ + airdcpp-webclient>=2:net-p2p/airdcpp-webclient \ + airdcpp-webclient<3:net-p2p/airdcpp-webclient + +USES= tar:tgz + +DATADIR?= ${PREFIX}/share/airdcpp + +NO_BUILD= yes + +do-fetch: + @if [ "${FORCE_FETCH_ALL}" = "true" ] || ! [ -f "${DISTDIR}/${DISTFILES}" ]; then \ + ${ECHO_MSG} "===> Fetching AirDC++ WebUI from NPM." && \ + ${MKDIR} ${WRKDIR} && \ + (cd ${WRKDIR} && npm install --loglevel=error --ignore-scripts --prefix . ${PORTNAME}@${DISTVERSION}) && \ + (mv ${WRKDIR}/node_modules/${PORTNAME} ${WRKSRC}) && \ + ${ECHO_MSG} "===> Compressing files" && \ + (cd ${WRKDIR} && ${FIND} ${DISTNAME} -and -exec ${TOUCH} -h -d 1970-01-01T00:00:00Z {} \; && \ + ${FIND} ${DISTNAME} -print0 | LC_ALL=C ${SORT} -z | \ + ${TAR} czf ${DISTDIR}/${DISTFILES} --format=bsdtar --gid 0 --uid 0 --options gzip:!timestamp --no-recursion --null -T -) && \ + ${RM} -r ${WRKDIR}; \ + fi + +do-install: + @${MKDIR} ${STAGEDIR}${DATADIR}/web-resources + @(cd ${WRKSRC}/dist && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/web-resources) + + @(cd ${STAGEDIR}${DATADIR}; ${FIND} . -type f) | ${SORT} | \ + ${SED} -e 's,^\.,${DATADIR_REL},' >> ${TMPPLIST} + +.include diff --git a/net-p2p/airdcpp-webui/distinfo b/net-p2p/airdcpp-webui/distinfo new file mode 100644 index 000000000000..be826642fbc5 --- /dev/null +++ b/net-p2p/airdcpp-webui/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1670588981 +SHA256 (airdcpp-webui-2.11.4.tgz) = e48b1f1b617e1b2e33729a292ef6491f0417080383f06da5d46cb1677d4a91a5 +SIZE (airdcpp-webui-2.11.4.tgz) = 8815283 diff --git a/net-p2p/airdcpp-webui/pkg-descr b/net-p2p/airdcpp-webui/pkg-descr new file mode 100644 index 000000000000..d30a2af3c03d --- /dev/null +++ b/net-p2p/airdcpp-webui/pkg-descr @@ -0,0 +1 @@ +AirDC++ Web UI written in Javascript. Communicates with AirDC++ Core via AirDC++ Web API.