blob: 93871a4029718c1cd842e39f81e729edef36439f (
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
123
124
125
|
# Maintainer: Timo Kramer <fw minus aur at timokramer dot de>
pkgname=mullvad-vpn-cli
pkgver=2020.6
pkgrel=1
pkgdesc="The Mullvad VPN client cli"
url="https://www.mullvad.net"
arch=('x86_64')
license=('GPL3')
depends=('nss')
makedepends=('git' 'rust' 'go')
conflicts=('mullvad-vpn')
install="${pkgname}.install"
_commit='b82a3e9a7717b8b15c339bc78d4a2f3c6d90ea50'
source=("git+https://github.com/mullvad/mullvadvpn-app.git#tag=${pkgver}?signed"
"git+https://github.com/mullvad/mullvadvpn-app-binaries.git#commit=${_commit}?signed"
'override.conf'
'settings.json.sample')
sha256sums=('SKIP'
'SKIP'
'ed978958f86da9acbce950a832491b140a350c594e2446b99a7c397a98731316'
'2729b6842bff30eb3dae23a2133054ab1cfe9312a4fc9baa8433a81e9bafd362')
validpgpkeys=('EA0A77BF9E115615FC3BD8BC7653B940E494FE87'
# Linus Färnstrand (code signing key) <linus at mullvad dot net>
'8339C7D2942EB854E3F27CE5AEE9DECFD582E984')
# David Lönnhager (code signing) <david dot l at mullvad dot net>
prepare() {
# Point the submodule to our local copy
cd "${srcdir}/mullvadvpn-app"
git submodule init dist-assets/binaries
git config submodule.mullvadvpn-app-binaries.url "${srcdir}/mullvadvpn-app-binaries"
git submodule update
export GOPATH="$srcdir/gopath"
go clean -modcache
}
build() {
echo "Building Mullvad VPN..."
echo "Building wireguard-go..."
cd "$srcdir/mullvadvpn-app/wireguard/libwg"
mkdir -p "../../build/lib/$arch-unknown-linux-gnu"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
go build -v -o "../../build/lib/$arch-unknown-linux-gnu"/libwg.a -buildmode c-archive
# Clean mod cache for makepkg -C
go clean -modcache
cd "${srcdir}/mullvadvpn-app"
echo "Removing old Rust build artifacts"
cargo clean
# Build mullvad-daemon
cargo build --release --locked
# Copy binaries for packaging
cp -v dist-assets/binaries/x86_64-unknown-linux-gnu/{openvpn,sslocal} dist-assets/
binaries=(mullvad
mullvad-daemon
mullvad-problem-report
mullvad-setup
mullvad-exclude
libtalpid_openvpn_plugin.so)
for binary in ${binaries[*]}; do
cp target/release/${binary} dist-assets/${binary}
done
# Update relays.json
cargo run -p mullvad-rpc --bin relay_list > dist-assets/relays.json
# Shell completions
cd mullvad-cli
mkdir -p ../dist-assets/shell-completions
for sh in bash zsh fish; do
echo "Generating shell completion script for $sh..."
cargo run --release --locked --features shell-completions -- \
shell-completions "$sh" ../dist-assets/shell-completions/
done
}
package() {
cd "${srcdir}/mullvadvpn-app"
# Install main files
install --verbose --directory --mode=755 "${pkgdir}/opt/mullvad-vpn-cli"
cp -rav dist-assets/* "${pkgdir}/opt/mullvad-vpn-cli"
# Install daemon service
install --verbose -D --mode=644 dist-assets/linux/mullvad-daemon.service -t \
"${pkgdir}/usr/lib/systemd/system"
# Install override for daemon
install --verbose -D --mode=644 "${srcdir}/override.conf" -t \
"${pkgdir}/etc/systemd/system/mullvad-daemon.service.d"
# Install CLI binary
install --verbose -D --mode=755 target/release/mullvad -t "${pkgdir}/usr/bin"
# Install CLI exclude binary
install --verbose -D --mode=755 target/release/mullvad-exclude -t "${pkgdir}/usr/bin"
# Install shell completion zsh
install --verbose -D --mode=644 dist-assets/shell-completions/_mullvad -t \
"${pkgdir}/usr/share/zsh/site-functions"
# Install shell completion bash
install --verbose -D --mode=644 dist-assets/shell-completions/mullvad.bash -t \
"${pkgdir}/usr/share/bash-completion/completions/mullvad"
# Install shell completion fish
install -Dm755 dist-assets/shell-completions/mullvad.fish -t \
"$pkgdir/usr/share/fish/vendor_completions.d"
# Install settings.json
install --verbose -D --mode=644 "${srcdir}/settings.json.sample" -t "${pkgdir}/etc/mullvad-vpn"
# Install license
install --verbose -D --mode=644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
|