# $FreeBSD$

PORTNAME=	v2ray
DISTVERSIONPREFIX=	v
DISTVERSION=	4.33.0
CATEGORIES=	net

MAINTAINER=	shen.elf@gmail.com
COMMENT=	Platform for building proxies to bypass network restrictions

LICENSE=	MIT
LICENSE_FILE=	${WRKSRC}/LICENSE

USES=		go:modules
USE_GITHUB=	yes
USE_RC_SUBR=	v2ray

GH_ACCOUNT=	v2fly
GH_PROJECT=	v2ray-core
GH_TUPLE=	\
		cheekybits:genny:v1.0.0:cheekybits_genny/vendor/github.com/cheekybits/genny \
		davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
		dgryski:go-metro:85c65e2d0165:dgryski_go_metro/vendor/github.com/dgryski/go-metro \
		ebfe:bcrypt_pbkdf:3c8d2dcb253a:ebfe_bcrypt_pbkdf/vendor/github.com/ebfe/bcrypt_pbkdf \
		go-yaml:yaml:9f266ea9e77c:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
		golang:crypto:9e8e0b390897:golang_crypto/vendor/golang.org/x/crypto \
		golang:mock:v1.4.4:golang_mock/vendor/github.com/golang/mock \
		golang:net:ff519b6c9102:golang_net/vendor/golang.org/x/net \
		golang:protobuf:v1.4.3:golang_protobuf/vendor/github.com/golang/protobuf \
		golang:sync:67f06af15bc9:golang_sync/vendor/golang.org/x/sync \
		golang:sys:4d91cf3a1aaf:golang_sys/vendor/golang.org/x/sys \
		golang:text:v0.3.3:golang_text/vendor/golang.org/x/text \
		golang:xerrors:9bdfabe68543:golang_xerrors/vendor/golang.org/x/xerrors \
		google:go-cmp:v0.5.3:google_go_cmp/vendor/github.com/google/go-cmp \
		google:go-genproto:cb27e3aa2013:google_go_genproto/vendor/google.golang.org/genproto \
		google:starlark-go:dff0ae5b4820:google_starlark_go/vendor/go.starlark.net \
		gorilla:websocket:v1.4.2:gorilla_websocket/vendor/github.com/gorilla/websocket \
		grpc:grpc-go:v1.33.2:grpc_grpc_go/vendor/google.golang.org/grpc \
		h12w:socks:v1.0.1:h12w_socks/vendor/h12.io/socks \
		lucas-clemente:quic-go:v0.19.2:lucas_clemente_quic_go/vendor/github.com/lucas-clemente/quic-go \
		marten-seemann:qtls-go1-15:v0.1.1:marten_seemann_qtls_go1_15/vendor/github.com/marten-seemann/qtls-go1-15 \
		marten-seemann:qtls:v0.10.0:marten_seemann_qtls/vendor/github.com/marten-seemann/qtls \
		miekg:dns:v1.1.35:miekg_dns/vendor/github.com/miekg/dns \
		pires:go-proxyproto:v0.3.2:pires_go_proxyproto/vendor/github.com/pires/go-proxyproto \
		pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
		protocolbuffers:protobuf-go:v1.25.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
		seiflotfy:cuckoofilter:afb285a456ab:seiflotfy_cuckoofilter/vendor/github.com/seiflotfy/cuckoofilter \
		stretchr:testify:v1.6.1:stretchr_testify/vendor/github.com/stretchr/testify \
		v2fly:VSign:6e7f92656885:v2fly_vsign/vendor/github.com/v2fly/VSign

GO_BUILDFLAGS=	-ldflags='-s -w'
GO_TARGET=	./main:v2ray \
		./infra/control/main:v2ctl
GO_TESTFLAGS=	-p 1 -tags json -timeout 30m

USERS=		v2ray
GROUPS=		v2ray

SUB_LIST=	USER="${USERS}" \
		GROUP="${GROUPS}"

post-install:
	${MKDIR} ${STAGEDIR}${ETCDIR}
	${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${WRKSRC}/release/config/config.json ${STAGEDIR}${ETCDIR}/config.json.sample
	${INSTALL_DATA} ${WRKSRC}/release/config/vpoint_socks_vmess.json ${STAGEDIR}${ETCDIR}/vpoint_socks_vmess.json
	${INSTALL_DATA} ${WRKSRC}/release/config/vpoint_vmess_freedom.json ${STAGEDIR}${ETCDIR}/vpoint_vmess_freedom.json
	${INSTALL_DATA} ${WRKSRC}/release/config/geoip.dat ${STAGEDIR}${DATADIR}/geoip.dat
	${INSTALL_DATA} ${WRKSRC}/release/config/geosite.dat ${STAGEDIR}${DATADIR}/geosite.dat

.include <bsd.port.mk>
