blob: a1d57cc9db0cc45b5db62e996fbedd2f98212f26 (
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
|
# Maintainer: Vyacheslav Konovalov <🦀vk@protonmail.com>
# Contributor: Posi <posi1981@gmail.com>
# Contributor: Mikhail Velichko <efklid@gmail.com>
# Contributor: Michael Duncan Hammond <mhammond9@radford.edu>
# Contributor: K900 <me@0upti.me>
pkgname=cisco-anyconnect
pkgver=4.10.08029
pkgrel=1
pkgdesc='Cisco AnyConnect Secure Mobility Client'
url='https://www.cisco.com/c/en/us/support/security/anyconnect-secure-mobility-client-v4-x/model.html'
arch=('x86_64')
depends=('libxml2' 'ca-certificates')
optdepends=(
'hicolor-icon-theme: required by desktop shortcuts'
'gtk2: required by vpnui'
'glib2: required by vpnui'
'gtk3: required by acwebhelper'
'webkit2gtk: required by acwebhelper'
)
license=('custom')
# Stripping the binaries trips some sort of an integrity check inside vpnagentd.
options=('!strip')
source=(
"https://helpdesk.ugent.be/vpn/download/anyconnect-linux64-$pkgver-predeploy-k9.tar.gz"
'AnyConnectLocalPolicy.xml'
"$pkgname.sh"
)
sha512sums=(
'4ab4de736fc03f1261ee417a0afeb277bfcaca78b66671021d3ffba9640af352d531a6a32c8ea92e69ca0bf862ba0b96e5e5a67df86fb541c6f3ddad7c054f45'
'4b6af68475ec427e51d0811b07637b132eb7a49b70de4142ea1f11f6c96c330c1cd368c178db86116457fb9a3eea1800873d3a1f03a0560fbec6fa63d88dc8ce'
'a5de5f992f81c60bae9bcf7c784d3e335f1a709d76b363ec7d6d0e1846e2e23481b50dcbe7826755a3911a5f8fb53432a3d4cff1cc4bc5a13f9aedcf9a4c8c99'
)
package() {
cd "anyconnect-linux64-$pkgver/vpn"
# Install binaries.
for binary in vpnagentd vpn vpndownloader vpndownloader-cli manifesttool_vpn acinstallhelper \
vpnui acwebhelper load_tun.sh; do
install -Dm755 $binary -t "$pkgdir/opt/cisco/anyconnect/bin"
done
# Install libs.
for lib in libvpnagentutilities.so libvpncommon.so libvpncommoncrypt.so libvpnapi.so \
libacruntime.so libacciscossl.so libacciscocrypto.so cfom.so libboost_date_time.so \
libboost_filesystem.so libboost_regex.so libboost_system.so libboost_thread.so \
libboost_signals.so libboost_chrono.so libaccurl.so.4.8.0; do
install -Dm755 $lib -t "$pkgdir/opt/cisco/anyconnect/lib"
done
# The installer copies all the other symlinks, but creates this one for some reason,
# so lets just create it ourselves.
ln -s /opt/cisco/anyconnect/lib/libaccurl.so.4.8.0 "$pkgdir/opt/cisco/anyconnect/lib/libaccurl.so.4"
# Install plugins.
# We intentionally don't install the telemetry plugin here, because it tries to write to /opt.
for plugin in libacwebhelper.so libvpnipsec.so; do
install -Dm755 $plugin -t "$pkgdir/opt/cisco/anyconnect/bin/plugins"
done
cp -R resources "$pkgdir/opt/cisco/anyconnect/resources"
# Install some misc stuff.
install -Dm444 AnyConnectProfile.xsd -t "$pkgdir/opt/cisco/anyconnect/profile"
for file in ACManifestVPN.xml update.txt AnyConnectLocalPolicy.xsd; do
install -Dm444 $file -t "$pkgdir/opt/cisco/anyconnect"
done
# Install desktop file for vpnui.
install -Dm644 resources/vpnui48.png "$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png"
install -Dm644 resources/vpnui128.png "$pkgdir/usr/share/icons/hicolor/128x128/apps/$pkgname.png"
sed -i "s|^Exec=.*|Exec=$pkgname|g" com.cisco.anyconnect.gui.desktop
install -Dm644 com.cisco.anyconnect.gui.desktop -t "$pkgdir/usr/share/applications"
# Install license.
for license in license.txt OpenSource.html; do
install -Dm644 $license -t "$pkgdir/usr/share/licenses/$pkgname"
done
# Install systemd unit for vpnagentd.
install -Dm644 vpnagentd.service -t "$pkgdir/usr/lib/systemd/system"
install -Dm755 "$srcdir/$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
# Install CA certificates.
mkdir -p "$pkgdir/opt/.cisco/certificates/ca"
# First, install our own system root.
ln -s /etc/ca-certificates/extracted/tls-ca-bundle.pem "$pkgdir/opt/.cisco/certificates/ca/system-ca.pem"
# Then, install Cisco's, because it doesn't actually trace to any of the trusted roots we have,
# (thanks, VeriSign).
install -Dm644 VeriSignClass3PublicPrimaryCertificationAuthority-G5.pem -t "$pkgdir/opt/.cisco/certificates/ca"
# Install custom policy to disable auto updates,
# so AnyConnect won't attempt to update itself as root,
# and then run all over both itself and our packaging.
#
# NOTE: This may break some really quirky setups that require downloading files from the server,
# but there's no other way around it that we could find.
install -Dm644 "$srcdir/AnyConnectLocalPolicy.xml" -t "$pkgdir/opt/cisco/anyconnect"
}
|