blob: 704a6f69eddb69ef07c40435d449d73ba7fe9be1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd linux-info
go-module_set_globals
DESCRIPTION="Official IVPN Desktop app"
HOMEPAGE="https://www.ivpn.net/ https://github.com/ivpn"
SRC_URI="https://github.com/ivpn/desktop-app/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://github.com/FlyingWaffleDev/gentoo-ivpn-deps/releases/download/${P}/${P}-deps.tar.xz"
LICENSE="GPL-3"
KEYWORDS="~amd64"
SLOT="0"
IUSE="systemd"
RESTRICT="primaryuri"
RDEPEND="sys-libs/glibc
sys-process/lsof
net-vpn/openvpn
net-vpn/wireguard-tools
net-wireless/wireless-tools
net-proxy/lyrebird
net-dns/dnscrypt-proxy"
DEPEND="${RDEPEND}"
BDEPEND="net-misc/curl
>=dev-lang/go-1.18"
#S="${WORKDIR}/desktop-app-${PV}"
S="${WORKDIR}/desktop-app-${PV}/cli"
DOCS=( readme.md CHANGELOG.md )
pkg_pretend() {
local CONFIG_CHECK="NETFILTER_XT_SET NETFILTER_XT_MATCH_CGROUP
NETFILTER_XT_MATCH_MARK NETFILTER_XT_MATCH_CONNMARK
NETFILTER_XT_TARGET_MARK NETFILTER_XT_TARGET_CONNMARK"
check_extra_config
}
src_compile() {
# version info variables
VERSION="${PV}"
DATE="$(date "+%Y-%m-%d")"
COMMIT="${PV}_stamped"
# build daemon
SCRIPT_DIR="${S}/../daemon/References/Linux/scripts"
OUT_DIR="$SCRIPT_DIR/_out_bin"
OUT_FILE="$OUT_DIR/ivpn-service"
mkdir -p "$OUT_DIR" || die
# updating servers.json
# cd ${SCRIPT_DIR}
# ./update-servers.sh
# # Or just add "https://api.ivpn.net/v5/servers.json" to the SRC_URI
cd "${S}/../daemon" || die
go build -buildmode=pie -o "$OUT_FILE" -trimpath -ldflags "-s -w -X github.com/ivpn/desktop-app/daemon/version._version=$VERSION -X github.com/ivpn/desktop-app/daemon/version._commit=$COMMIT -X github.com/ivpn/desktop-app/daemon/version._time=$DATE" || die "failed to compile daemon"
# build kem-helper
#cd "${S}/../daemon/Refernces/Linux/scripts" || die
#./build-kem-helper.sh
# build v2ray
# ...
# build cli
SCRIPT_DIR="${S}/References/Linux"
OUT_DIR="$SCRIPT_DIR/_out_bin"
OUT_FILE="$OUT_DIR/ivpn"
mkdir -p "$OUT_DIR" || die
cd "${S}" || die
go build -o "$OUT_FILE" -trimpath -ldflags "-s -w -X github.com/ivpn/desktop-app/daemon/version._version=$VERSION -X github.com/ivpn/desktop-app/daemon/version._commit=$COMMIT -X github.com/ivpn/desktop-app/daemon/version._time=$DATE" || die "failed to compile cli"
}
src_install() {
mkdir -p "${D}/opt/ivpn/etc" || die
cd "${S}/../daemon" || die
dobin "References/Linux/scripts/_out_bin/ivpn-service"
insinto "opt/ivpn/etc"
insopts -m700
doins "References/Linux/etc/client.down"
doins "References/Linux/etc/client.up"
doins "References/Linux/etc/firewall.sh"
doins "References/Linux/etc/splittun.sh"
insopts -m600
doins "References/common/etc/servers.json"
insopts -m400
doins "References/common/etc/ca.crt"
doins "References/common/etc/ta.key"
doins "References/common/etc/dnscrypt-proxy-template.toml"
dosym "$(which wg-quick)" "opt/ivpn/wireguard-tools/wg-quick"
dosym "$(which wg)" "opt/ivpn/wireguard-tools/wg"
dosym "$(which lyrebird)" "opt/ivpn/obfsproxy/obfs4proxy"
dosym "$(which dnscrypt-proxy)" "opt/ivpn/dnscrypt-proxy/dnscrypt-proxy"
cd "${S}" || die
dobin "References/Linux/_out_bin/ivpn"
if use systemd; then
systemd_dounit "${FILESDIR}/ivpn-service.service"
else
newinitd "${FILESDIR}/ivpn.initd" ivpn
fi
}
|