diff --git a/net/xray/Makefile~ b/net/xray/Makefile~ new file mode 100644 index 00000000..6181e100 --- /dev/null +++ b/net/xray/Makefile~ @@ -0,0 +1,61 @@ +PORTNAME= xray +DISTVERSIONPREFIX= v +DISTVERSION= 25.1.30 +CATEGORIES= net + +MAINTAINER= shen.elf@gmail.com +COMMENT= Platform for building proxies to bypass network restrictions +WWW= https://www.v2ray.com + +USES= go:modules +USE_GITHUB= yes +USE_RC_SUBR= xray + +GH_ACCOUNT= XTLS +GH_PROJECT= Xray-core +GH_TUPLE= # + +GO_BUILDFLAGS= -ldflags='${STRIP} -w' +GO_TARGET= ./main:xray +GO_TESTFLAGS= -p 1 -tags json -timeout 30m + +#USERS= v2ray +#GROUPS= v2ray + +OWNER= ${PORTNAME} +GROUP= ${PORTNAME} +OWNER_ID= 361 +GROUP_ID= 361 + +PKGDEINSTALL= ${WRKDIR}/pkg-deinstall +PKGINSTALL= ${WRKDIR}/pkg-install +USE_RC_SUBR= ${PORTNAME} +SUB_FILES+= pkg-install pkg-deinstall + +SUB_LIST+= OWNER=${OWNER} +SUB_LIST+= GROUP=${GROUP} +SUB_LIST+= OWNER_ID=${OWNER_ID} +SUB_LIST+= GROUP_ID=${GROUP_ID} + +#PLIST_SUB+= LOCALSTATEDIR=${LOCALSTATEDIR} +#PLIST_SUB+= PREFIX=${PREFIX} + +#SUB_LIST+= LOCALSTATEDIR=${LOCALSTATEDIR} +SUB_LIST+= PREFIX=${PREFIX} + +#LOCALSTATEDIR= /var +#LAYOUT_FILE= ${WRKSRC}/config.layout + +pre-build: + cd ${WRKSRC} && go mod vendor + +#post-install: +# ${MKDIR} ${STAGEDIR}${DATADIR} +# ${INSTALL_DATA} ${WRKSRC}/release/config/geoip.dat ${STAGEDIR}${DATADIR}/geoip.dat +# ${INSTALL_DATA} ${WRKSRC}/release/config/geosite.dat ${STAGEDIR}${DATADIR}/geosite.dat +# ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} +# ${INSTALL_DATA} ${WRKSRC}/release/config/config.json ${STAGEDIR}${EXAMPLESDIR}/config.json.sample +# ${INSTALL_DATA} ${WRKSRC}/release/config/vpoint_socks_vmess.json ${STAGEDIR}${EXAMPLESDIR}/vpoint_socks_vmess.json +# ${INSTALL_DATA} ${WRKSRC}/release/config/vpoint_vmess_freedom.json ${STAGEDIR}${EXAMPLESDIR}/vpoint_vmess_freedom.json + +.include diff --git a/net/xray/files/pkg-install.in~ b/net/xray/files/pkg-install.in~ new file mode 100644 index 00000000..9a1012f2 --- /dev/null +++ b/net/xray/files/pkg-install.in~ @@ -0,0 +1,45 @@ +#!/bin/sh + +set -x + + +case $2 in + PRE-INSTALL) + + GROUP="%%GROUP%%" + OWNER="%%OWNER%%" + GROUP_ID="%%GROUP_ID%%" + OWNER_ID="%%OWNER_ID%%" + + PKG_PREFIX="%%PREFIX%%" +# LOCALSTATEDIR="%%LOCALSTATEDIR%%" + +# PROXYDIR="%%LOCALSTATEDIR%%/cache/apache" +# RUNDIR="%%LOCALSTATEDIR%%/run/apache" +# LOGDIR="%%LOCALSTATEDIR%%/log/apache" +# DATADIR="%%LOCALSTATEDIR%%/www/apache" + + NAME="apache" + SHELL="/usr/sbin/nologin" + + + pw group add ${GROUP} -g ${GROUP_ID} + pw group show ${GROUP} + pw user add ${OWNER} -u ${OWNER_ID} \ + -g ${GROUP} \ + -d ${PKG_PREFIX} \ + -s "${SHELL}" -u ${OWNER_ID} \ + -c "${NAME}" + pw group mod ${GROUP} -M ${OWNER} + pw user show ${OWNER} + pw group show ${GROUP} +# for dir in ${LOGDIR} ${PROXYDIR} ${RUNDIR}; do +# install -d -o ${OWNER} -g ${GROUP} -m 0750 ${dir} +# done +# install -d -o root -g wheel -m 0755 ${DATADIR} + ;; + POST-INSTALL) + ;; +esac +exit 0 +#EOF diff --git a/net/xray/files/xray.in~ b/net/xray/files/xray.in~ new file mode 100644 index 00000000..1fbafc18 --- /dev/null +++ b/net/xray/files/xray.in~ @@ -0,0 +1,47 @@ +#!/bin/sh + +# PROVIDE: xray +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Add these lines to /etc/rc.conf.local or /etc/rc.conf to enable `xray': +# +# xray_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable xray +# xray_config (path): Set to "%%PREFIX%%/etc/xray/config.json" by default +# Set it to the xray server config +# xray_logdir (path): Set to "/var/log/xray" by default. +# Set it to the directory of xray log files +# xray_env (str): Set to "" by default. +# Set it to the desired environment variables + +. /etc/rc.subr + +name="xray" +rcvar="${name}_enable" + +: ${xray_enable="NO"} +: ${xray_config="%%PREFIX%%/etc/$name/config.json"} +: ${xray_logdir="/var/log/${name}"} +: ${xray_env=""} +: ${xray_user="%%USER%%"} +: ${xray_group="%%GROUP%%"} + +asset_env="XRAY_LOCATION_ASSET=%%PREFIX%%/share/$name" +pidfile="/var/run/$name.pid" +procname="%%PREFIX%%/bin/$name" +command="/usr/sbin/daemon" +command_args="-c -p ${pidfile} /usr/bin/env ${asset_env} ${xray_env} ${procname} -config ${xray_config}" +required_files="${xray_config}" + +start_precmd="xray_startprecmd" + +xray_startprecmd() { + touch "${pidfile}" + chown ${xray_user}:${xray_group} "${pidfile}" + mkdir -p "${xray_logdir}" + chown -R ${xray_user}:${xray_group} "${xray_logdir}" +} + +load_rc_config "$name" +run_rc_command "$1"