# Contributor: nibon7 <nibon7@163.com>
# Maintainer: nibon7 <nibon7@163.com>
pkgname=v2ray
pkgver=5.16.1
pkgrel=2
pkgdesc="A platform for building proxies to bypass network restrictions"
url="https://v2fly.org"
# loongarch64: tests failed
arch="all !loongarch64"
license="MIT"
makedepends="go"
subpackages="$pkgname-openrc"
_geosite_ver=20240508170917
_geoip_ver=202405230041
source="$pkgname-core-$pkgver.tar.gz::https://github.com/v2fly/v2ray-core/archive/v$pkgver.tar.gz
	geosite-$_geosite_ver.dat::https://github.com/v2fly/domain-list-community/releases/download/$_geosite_ver/dlc.dat
	geoip-$_geoip_ver.dat::https://github.com/v2fly/geoip/releases/download/$_geoip_ver/geoip.dat
	geoip-only-cn-private-$_geoip_ver.dat::https://github.com/v2fly/geoip/releases/download/$_geoip_ver/geoip-only-cn-private.dat
	v2ray.initd
	v2ray.confd
	"
options="net" # test FakeDNS

builddir="$srcdir/$pkgname-core-$pkgver"

export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

build() {
	local ldflags="
		-X github.com/v2fly/v2ray-core/v5.codename=$pkgname
		-X github.com/v2fly/v2ray-core/v5.version=$pkgver
		-X github.com/v2fly/v2ray-core/v5.build=$SOURCE_DATE_EPOCH
		-buildid=
		"
	go build -trimpath -ldflags "$ldflags" -o v2ray ./main
}

check() {
	mkdir -p testing/temp
	cp "$srcdir"/geosite-$_geosite_ver.dat testing/temp/geosite.dat
	cp "$srcdir"/geoip-$_geoip_ver.dat testing/temp/geoip.dat

	# due to heavy CI workload, scenario tests always timeout
	local pkgs=$(go list ./... | grep -v \
		-e 'v5/testing/scenarios$' \
	)
	go test $pkgs
}

package() {
	install -Dm755 -d "$pkgdir"/etc/$pkgname
	install -m644 release/config/*.json -t "$pkgdir"/etc/$pkgname

	install -Dm755 -d "$pkgdir"/usr/share/$pkgname
	install -m644 "$srcdir"/geosite-$_geosite_ver.dat \
		"$pkgdir"/usr/share/$pkgname/geosite.dat
	install -m644 "$srcdir"/geoip-$_geoip_ver.dat \
		"$pkgdir"/usr/share/$pkgname/geoip.dat
	install -m644 "$srcdir"/geoip-only-cn-private-$_geoip_ver.dat \
		"$pkgdir"/usr/share/$pkgname/geoip-only-cn-private.dat

	install -Dm755 v2ray "$pkgdir"/usr/bin/v2ray

	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}

sha512sums="
ce935b156ee62dba712ff31fee8422d3ba32c596a9a55c0ae3d31917c9b4ed2a47260bf5ed241e8e32d4f85ed5d2b6bd8229e0928f6bfe636e25565ae58d3f61  v2ray-core-5.16.1.tar.gz
84e414342b65859ab0f631c9218b01fb360c7b5eb30644ad3e99278a8928f3faa1071e1bf9fc1c1ab3d41df6974776f7c2f428657cbff38875528c1bbab78b62  geosite-20240508170917.dat
7c942cc94373bcd2bf7345668556b767137d24d5f07ab8dde263cb267d59f62c63918d06aaccb266ffa0172ecae4f7a29e31fc9d705475b26018f8fb3e3cdac4  geoip-202405230041.dat
4d3593d2efb013d762f09d0c8569d39c01d900a39a282962951de7f73bc4e817610a2ed41862f2a1b3948d021cca9a27b525b03f83256a6c0428759684bb7f12  geoip-only-cn-private-202405230041.dat
714e9f93efb74a2b30a74df95fa2bdaa854188d5fce3ed4514f2d19e790baf31dc78c18726700013113501dd31981a2e0582150b64d7235121242c01e2e5b8d9  v2ray.initd
4b00bfe001780b9ac7eff1b9776a98ae5e7050362ebfb0ed2550f8f1244e9474d186dcde5bccba01dbdd908e9a932f75238becae6585efe674ebc5ffb8cbf0a6  v2ray.confd
"