blob: b7fa6fcf3c681b8eed1170f896f5e19cc97ede12 (
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
120
121
122
|
# Maintainer: koonix <me at koonix dot org>
# Contributor: Marcell Meszaros < marcell.meszaros AT runbox.eu >
# Contributor: zer0def
# Contributor: navigaid <navigaid@gmail.com>
_name=naiveproxy
pkgname=${_name}-bin
pkgrel=1
_version=v124.0.6367.54-2
pkgver=${_version//-/_}
pkgver=${pkgver#v}
pkgdesc='Camouflage network traffic with strong censorship resistence and low detectability'
url='https://github.com/klzgrad/naiveproxy'
license=('BSD')
provides=("${_name}")
conflicts=("${_name}")
depends=('gcc-libs')
options=('!strip') # don't modify prebuilt binaries
# source array template
# @ARCH@ and @SRCARCH@ will be substituted per the _archmap array below
_source=(
"${_name}-${_version}-@ARCH@.tar.xz::${url}/releases/download/${_version}/naiveproxy-${_version}-linux-@SRCARCH@.tar.xz"
naiveproxy.service.tmpl
naiveproxy-sysusers.conf
)
# architectures and their counterparts used in the source URL
declare -Ag _archmap=(
# [ARCH]=SRCARCH
['x86_64']='x64'
['i686']='x86'
['aarch64']='arm64'
['armv7h']='arm'
['mips64el']='mips64el'
['mipsel']='mipsel'
)
# config file's path
_config="/etc/naiveproxy/config.json"
backup=("${_config#/}")
# generate systemd services from the template
prepare()
{
# regular service
TMPL_CONFIG_FILE_PATH="${_config}" \
_envsubst naiveproxy.service.tmpl naiveproxy.service
# multi-instance service (http://0pointer.net/blog/projects/instances.html)
TMPL_CONFIG_FILE_PATH="${_config%/*}/%i.${_config##*.}" \
_envsubst naiveproxy.service.tmpl naiveproxy@.service
}
package()
{
install -Dm644 naiveproxy.service -t "${pkgdir}/usr/lib/systemd/system/"
install -Dm644 naiveproxy@.service -t "${pkgdir}/usr/lib/systemd/system/"
install -Dm644 naiveproxy-sysusers.conf "${pkgdir}/usr/lib/sysusers.d/naiveproxy.conf"
cd "naiveproxy-${_version}-linux-${_archmap[$CARCH]}"
install -Dm644 config.json "${pkgdir}${_config}"
install -Dm755 naive "${pkgdir}/usr/bin/naiveproxy"
install -Dm644 USAGE.txt "${pkgdir}/usr/share/doc/naiveproxy/USAGE.txt"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
# boilerplate for generating the "arch=()" and "source_<arch>=()" arrays
arch=("${!_archmap[@]}")
for _a in "${!_archmap[@]}"; do
_sa=${_archmap[$_a]}
_s=("${_source[@]//@ARCH@/$_a}")
_s=("${_s[@]//@SRCARCH@/$_sa}")
declare -ag "source_${_a}="'("${_s[@]}")'
done
# wrapper function for envsubst
_envsubst()
{
local in=$1 out=$2 vars=("${!TMPL_@}")
envsubst "${vars[*]/#/'$'}" < "$in" > "$out"
grep -q '\${\?TMPL_[A-Z_]\+' "$out" && {
echo "error: template file has unsubstituted references: '$in'" >&2
rm "$out"
return 1
} ||:
}
sha256sums_aarch64=(
'4a7af08238bc5cffad8532fc5b9f4a425b8659998510383fc74c19a99c0beaf6'
'd393b4d979ecc1be113122c2d7c59f2f53dcd751ff6dbf59fda3675f6d3e1d33'
'8124ab508627d36a73167e30c1a7912489b6a08124e3ef71234b1fca2656cd3c'
)
sha256sums_i686=(
'f3f001aa20e12dc26ddc23130ce93e17e2a7af72a33a06749b4e51490c2075a7'
'd393b4d979ecc1be113122c2d7c59f2f53dcd751ff6dbf59fda3675f6d3e1d33'
'8124ab508627d36a73167e30c1a7912489b6a08124e3ef71234b1fca2656cd3c'
)
sha256sums_mips64el=(
'837670d52a598a3051a40839bf983c52e39f7cdb54752c90f8a80b8fe1215ba6'
'd393b4d979ecc1be113122c2d7c59f2f53dcd751ff6dbf59fda3675f6d3e1d33'
'8124ab508627d36a73167e30c1a7912489b6a08124e3ef71234b1fca2656cd3c'
)
sha256sums_mipsel=(
'93568dee19734069b14e7550ab4dc612b9bbca6a55816cc18458347aba5f1311'
'd393b4d979ecc1be113122c2d7c59f2f53dcd751ff6dbf59fda3675f6d3e1d33'
'8124ab508627d36a73167e30c1a7912489b6a08124e3ef71234b1fca2656cd3c'
)
sha256sums_x86_64=(
'0906e70f210bea80b56d6d6cf393e936dcdd2f4aa2febcdff830cca4ed5ae8af'
'd393b4d979ecc1be113122c2d7c59f2f53dcd751ff6dbf59fda3675f6d3e1d33'
'8124ab508627d36a73167e30c1a7912489b6a08124e3ef71234b1fca2656cd3c'
)
sha256sums_armv7h=(
'2ab3d453c0ec8ef5a49800e9ebffc3e3f251321d95906726e66ba0636cf7e59f'
'd393b4d979ecc1be113122c2d7c59f2f53dcd751ff6dbf59fda3675f6d3e1d33'
'8124ab508627d36a73167e30c1a7912489b6a08124e3ef71234b1fca2656cd3c'
)
|