# Contributor: nibon7 <nibon7@163.com>
# Maintainer: Lindsay Zhou <i@lin.moe>
maintainer="Lindsay Zhou <i@lin.moe>"
pkgname=v2ray
pkgver=5.22.0
pkgrel=5
pkgdesc="A platform for building proxies to bypass network restrictions"
url="https://v2fly.org"
arch="all"
license="MIT"
makedepends="go"
subpackages="$pkgname-openrc"
_geosite_ver=20241112092643
_geoip_ver=202411210054
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" # go modules

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

	# network-dependent tests are unreliable
	local pkgs=$(go list ./... | grep -v \
		-e 'v5/testing/scenarios$' \
		-e 'v5/app/dns' \
	)
	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="
d7f0918a95121238504c72432f62c8a313c3db078ce28aab988d327848e36164c3572cbd88caaaf49b12ffef0951f78952e7238274ccdc5f851f90773d79f4bb  v2ray-core-5.22.0.tar.gz
267b5a1ca3b4b6fb8c3e237a5f351d7b462fdec89447bf919b04610fc5de5a0f01e6cc67637b3f4e18a0aacef0c544cd881d1637475f3380b7aa1eca0bc1ac26  geosite-20241112092643.dat
1c6dbf255e2dd7db02b8eb8bcc7d83e098f7696532dd2b6b3bdb76ff8d98e97506c91d267e1e86ce7c997e574cd0b929a0619fd10145d71fa99b59c7a0c6fa6f  geoip-202411210054.dat
ef5575e82ff783405419a556471b527d65bbbb964073286338329dd36009cdb9634c9af6e96b9881ea1a5ffe7c14b04f9c96c93e7e1c5e6d4cec926644d6c1b1  geoip-only-cn-private-202411210054.dat
714e9f93efb74a2b30a74df95fa2bdaa854188d5fce3ed4514f2d19e790baf31dc78c18726700013113501dd31981a2e0582150b64d7235121242c01e2e5b8d9  v2ray.initd
4b00bfe001780b9ac7eff1b9776a98ae5e7050362ebfb0ed2550f8f1244e9474d186dcde5bccba01dbdd908e9a932f75238becae6585efe674ebc5ffb8cbf0a6  v2ray.confd
"
