blob: aa2fca47da1979fb6079c6eb541030d747a7364f (
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
|
# Maintainer: Jerry Xiao <aur AT mail.jerryxiao.cc>
_srcname=shadowsocks-libev
pkgname=${_srcname}-static
pkgver=3.3.6
pkgrel=1
pkgdesc="Statically-compiled shadowsocks-libev, intended to replace community/shadowsocks-libev"
arch=('x86_64')
url='https://github.com/shadowsocks/shadowsocks-libev'
license=('GPL3')
# libcap: for .install only
depends=('libcap')
makedepends=('git' 'musl' 'kernel-headers-musl' 'asciidoc' 'xmlto' 'cmake')
provides=("$_srcname")
conflicts=("$_srcname")
options=('!lto')
install=${_srcname}.install
source=("${_srcname}::git+https://github.com/shadowsocks/${_srcname}.git#tag=v$pkgver"
'shadowsocks-libev@.service'
'shadowsocks-libev-server@.service'
'shadowsocks-libev-redir@.service'
'shadowsocks-libev-tunnel@.service')
_mbedtls_ver=3.6.5
_libsodium_ver=1.0.21
_libev_ver=4.33
_cares_ver=1.34.6
_pcre2_ver=10.47
source+=("https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-${_mbedtls_ver}/mbedtls-${_mbedtls_ver}.tar.bz2")
source+=("https://download.libsodium.org/libsodium/releases/libsodium-${_libsodium_ver}.tar.gz")
source+=("http://dist.schmorp.de/libev/libev-${_libev_ver}.tar.gz")
source+=("https://github.com/c-ares/c-ares/releases/download/v${_cares_ver}/c-ares-${_cares_ver}.tar.gz")
source+=("https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${_pcre2_ver}/pcre2-${_pcre2_ver}.tar.bz2")
source+=("0001-shadowsocks-libev-fix-horrible-cmake.patch")
sha256sums=('e889d5851e8febd385a7654af1f23b1292be8d012cef7eddd7e91209a20797d1'
'c5148bfb453467258917012a029fb7e935c72e4066e06447357941c68f7282fb'
'8fb077d92af2626cff904128ba410170baacf02cb92a6d58ec860be659ecde0b'
'c51e9c0838b85d66467164c4ecff20e4180aa57a3c56ce9eae41353c4f5bfd78'
'9dc81d58dde8a94f25a7475c626af7cb5507c795fcf3abc5b6367576e725d9a0'
'4a11f1777bb95bf4ad96721cac945a26e04bf19f57d905f241fe77ebeddf46d8'
'9e4285c7a419e82dedb0be63a72eea357d6943bc3e28e6735bf600dd4883feaf'
'507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea'
'912dd7cc3b3e8a79c52fd7fb9c0f4ecf0aaa73e45efda880266a2d6e26b84ef5'
'47fe8c99461250d42f89e6e8fdaeba9da057855d06eb7fc08d9ca03fd08d7bc7'
'80527e1db8909b75eb4143c37172912e2f2b1e96457ea050ae977ea94f3723d6')
export CC=musl-gcc
export CXX=true
prepare() {
cd "$srcdir/${_srcname}"
git submodule update --init --recursive
patch -p1 -i "$srcdir/0001-shadowsocks-libev-fix-horrible-cmake.patch"
}
build() {
export PKG_CONFIG_PATH="${srcdir}"/temp/usr/lib/pkgconfig
export PATH="${srcdir}/temp/usr/bin:${PATH}"
# mbedtls
cd "${srcdir}/mbedtls-${_mbedtls_ver}"
cmake -B build -DCMAKE_SYSTEM_PREFIX_PATH="${srcdir}/temp/usr" -DCMAKE_INSTALL_PREFIX="${srcdir}/temp/usr" -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=false -S .
cmake --build build --target install
# libsodium
cd "${srcdir}/libsodium-${_libsodium_ver}" || cd "${srcdir}/libsodium-stable"
LDFLAGS="$LDFLAGS -static" ./configure --prefix="${srcdir}/temp/usr" --disable-shared
make install
# libev
cd "${srcdir}/libev-${_libev_ver}"
LDFLAGS="$LDFLAGS -static" ./configure --prefix="${srcdir}/temp/usr" --disable-shared
make install
# c-ares
cd "${srcdir}"/c-ares-${_cares_ver}
cmake -B build -DCMAKE_SYSTEM_PREFIX_PATH="${srcdir}/temp/usr" -DCMAKE_INSTALL_PREFIX="${srcdir}/temp/usr" -DCMAKE_BUILD_TYPE=Release -DCARES_STATIC=true -DCARES_SHARED=false -S .
cmake --build build --target install
# pcre2
cd "${srcdir}/pcre2-${_pcre2_ver}"
LDFLAGS="$LDFLAGS -static" ./configure --prefix="${srcdir}/temp/usr" --disable-shared \
--enable-pcre2-16 \
--enable-pcre2-32 \
--enable-jit
make install
# shadowsocks-libev
cd "$srcdir/${_srcname}"
LDFLAGS="$LDFLAGS -static" cmake -B build -DCMAKE_SYSTEM_PREFIX_PATH="${srcdir}/temp/usr" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=false -DWITH_STATIC=true -S . \
-DMBEDTLS_INCLUDE_DIR="${srcdir}/temp/usr/include" -DMBEDTLS_CRYPTO_LIBRARY="${srcdir}/temp/usr/lib/libmbedcrypto.a" -DMBEDTLS_TLS_LIBRARY="${srcdir}/temp/usr/lib/libmbedtls.a" \
-DCARES_INCLUDE_DIR="${srcdir}/temp/usr/include" -DCARES_LIBRARY="${srcdir}/temp/usr/lib/libcares.a" \
-DSODIUM_INCLUDE_DIR="${srcdir}/temp/usr/include" -DSODIUM_LIBRARY="${srcdir}/temp/usr/lib/libsodium.a"
cmake --build build
}
package() {
cd "$srcdir/${_srcname}"
DESTDIR="$pkgdir/" cmake --build build --target install
install -Dm644 "$srcdir/shadowsocks-libev@.service" "$pkgdir/usr/lib/systemd/system/shadowsocks-libev@.service"
install -Dm644 "$srcdir/shadowsocks-libev-server@.service" "$pkgdir/usr/lib/systemd/system/shadowsocks-libev-server@.service"
install -Dm644 "$srcdir/shadowsocks-libev-redir@.service" "$pkgdir/usr/lib/systemd/system/shadowsocks-libev-redir@.service"
install -Dm644 "$srcdir/shadowsocks-libev-tunnel@.service" "$pkgdir/usr/lib/systemd/system/shadowsocks-libev-tunnel@.service"
}
|