PKGBUILDs/community/grpc/PKGBUILD

178 lines
5.4 KiB
Bash
Raw Normal View History

2019-09-27 02:16:25 +00:00
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
# Contributor: Aleksey Filippov <sarum9in@gmail.com>
# Contributor: Victor Aurélio Santos <victoraur.santos@gmail.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - explicitly link v5/v6 with libatomic
pkgbase='grpc'
2021-01-29 01:10:13 +00:00
pkgname=('grpc' 'python-grpcio' 'php-grpc' 'php7-grpc' 'grpc-cli')
2021-03-19 16:04:25 +00:00
pkgver=1.36.4
2020-02-05 13:15:20 +00:00
_gtestver=c9ccac7cb7345901884aabf5d1a786cfa6e2f397
2020-12-05 20:58:56 +00:00
_abseilcppver=20200923.2
2021-05-11 14:47:28 +00:00
pkgrel=2
2019-09-27 02:16:25 +00:00
pkgdesc="High performance, open source, general RPC framework that puts mobile and HTTP/2 first."
arch=('x86_64')
url='https://grpc.io'
license=('BSD')
2021-01-29 01:10:13 +00:00
makedepends=('re2' 're2c' 'protobuf' 'php' 'php7' 'c-ares' 'openssl' 'chrpath' 'cython'
'cmake' 'benchmark' 'python-setuptools')
2020-07-09 00:44:49 +00:00
source=("https://github.com/grpc/grpc/archive/v$pkgver/$pkgbase-$pkgver.tar.gz"
2020-02-05 13:15:20 +00:00
"https://github.com/google/googletest/archive/$_gtestver/googletest-$_gtestver.tar.gz"
2020-10-18 19:24:37 +00:00
"https://github.com/abseil/abseil-cpp/archive/$_abseilcppver/abseil-cpp-$_abseilcppver.tar.gz"
2021-05-11 14:47:28 +00:00
parse_json-fix-status-error.patch
2020-10-18 19:24:37 +00:00
"atomic.patch")
2021-03-19 16:04:25 +00:00
sha256sums=('8eb9d86649c4d4a7df790226df28f081b97a62bf12c5c5fe9b5d31a29cd6541a'
2020-02-05 13:15:20 +00:00
'443d383db648ebb8e391382c0ab63263b7091d03197f304390baac10f178a468'
2020-12-05 20:58:56 +00:00
'bf3f13b13a0095d926b25640e060f7e13881bd8a792705dd9e161f3c2b9aa976'
2021-05-11 14:47:28 +00:00
'6cb2101c74e0817a8037f7d5e0f0e251e5c6e87de41e286e0c930f50fe6485af'
2020-10-18 19:24:37 +00:00
'2f1285c8874cad70a7e1800f80b1673e8a1b7e2ff11f1f3e198063988cc5ab06')
2019-09-27 02:16:25 +00:00
prepare() {
2020-07-09 00:44:49 +00:00
cd "$srcdir/$pkgbase-$pkgver"
2020-10-18 19:24:37 +00:00
2021-05-11 14:47:28 +00:00
# https://github.com/grpc/grpc/pull/25731
patch -Np1 -i ../parse_json-fix-status-error.patch
2020-02-05 13:15:20 +00:00
ln -sf "$srcdir/googletest-$_gtestver/"{googlemock,googletest} \
2019-09-27 02:16:25 +00:00
third_party/googletest
2020-02-05 13:15:20 +00:00
rm -rf third_party/abseil-cpp
ln -s "$srcdir/abseil-cpp-$_abseilcppver/" third_party/abseil-cpp
2020-02-05 15:02:57 +00:00
mkdir build
2020-10-18 19:24:37 +00:00
2021-01-29 01:10:13 +00:00
cp -a src/php{,7}
2020-10-18 19:24:37 +00:00
if [[ $CARCH == "armv6h" || $CARCH == "arm" ]]; then
sed -i -e "s/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} rt m pthread)/set(_gRPC_ALLTARGETS_LIBRARIES \${CMAKE_DL_LIBS} atomic rt m pthread)/g" CMakeLists.txt
cd "$srcdir/abseil-cpp-$_abseilcppver"
patch -p1 -i ../atomic.patch
fi
2020-07-09 00:44:49 +00:00
}
build() {
cd "$srcdir/$pkgbase-$pkgver/build"
2020-02-05 15:02:57 +00:00
cmake \
2020-07-09 00:44:49 +00:00
-DCMAKE_BUILD_TYPE=None \
2020-07-10 12:01:07 +00:00
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" \
2020-04-16 13:34:56 +00:00
-DgRPC_INSTALL=ON \
-DBUILD_SHARED_LIBS=ON \
2020-06-02 12:44:42 +00:00
-DgRPC_BUILD_TESTS=ON \
2020-02-05 15:02:57 +00:00
-DCMAKE_INSTALL_PREFIX=/usr \
-DgRPC_CARES_PROVIDER=package \
-DgRPC_PROTOBUF_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package \
-DgRPC_ZLIB_PROVIDER=package \
2020-10-18 19:24:37 +00:00
-DgRPC_RE2_PROVIDER=package \
2020-07-09 00:44:49 +00:00
-DgRPC_BENCHMARK_PROVIDER=package \
2020-02-05 15:02:57 +00:00
..
2019-09-27 02:16:25 +00:00
2020-04-16 13:34:56 +00:00
make
export LDFLAGS="$LDFLAGS -L$PWD"
2019-09-27 02:16:25 +00:00
2020-04-16 13:34:56 +00:00
# PHP
cd "$srcdir/$pkgbase-$pkgver/src/php/ext/$pkgbase"
phpize
2020-07-09 00:44:49 +00:00
./configure --enable-grpc="$srcdir/$pkgbase-$pkgver"
2020-04-16 13:34:56 +00:00
make
2019-09-27 02:16:25 +00:00
2021-01-29 01:10:13 +00:00
# PHP7
cd "$srcdir/$pkgbase-$pkgver/src/php7/ext/$pkgbase"
phpize7
./configure --enable-grpc="$srcdir/$pkgbase-$pkgver"
make
2019-09-27 02:16:25 +00:00
# Python
2020-07-09 00:44:49 +00:00
cd "$srcdir/$pkgbase-$pkgver"
2019-09-27 02:16:25 +00:00
GRPC_PYTHON_BUILD_WITH_CYTHON=1 \
GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 \
GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 \
GRPC_PYTHON_BUILD_SYSTEM_CARES=1 \
2020-10-18 19:24:37 +00:00
GRPC_PYTHON_BUILD_SYSTEM_RE2=1 \
GRPC_BUILD_WITH_BORING_SSL_ASM=0 \
2019-09-27 02:16:25 +00:00
python setup.py build
}
package_grpc() {
2020-10-18 19:41:27 +00:00
depends=('c-ares' 'protobuf' 'openssl' 're2')
2020-12-05 03:38:10 +00:00
provides=(
'libupb.so'
'libgrpcpp_channelz.so'
'libgrpc_unsecure.so'
'libgrpc_plugin_support.so'
'libgrpc.so'
'libgrpc++_unsecure.so'
'libgrpc++_reflection.so'
'libgrpc++_error_details.so'
'libgrpc++_alts.so'
'libgrpc++.so'
'libgpr.so'
'libaddress_sorting.so'
)
2019-09-27 02:16:25 +00:00
2020-04-16 13:34:56 +00:00
cd "$srcdir/$pkgbase-$pkgver/build"
make DESTDIR="$pkgdir" install
install -Dm644 ../LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
2019-09-27 02:16:25 +00:00
}
package_python-grpcio() {
2020-02-10 19:18:42 +00:00
pkgdesc='Python language bindings for grpc, remote procedure call (RPC) framework'
2020-10-18 19:41:27 +00:00
depends=('c-ares' 'python' 're2')
2019-09-27 02:16:25 +00:00
cd "$srcdir/$pkgbase-$pkgver"
python setup.py install -O1 --skip-build --root="$pkgdir"
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
package_php-grpc() {
2020-02-10 19:18:42 +00:00
pkgdesc='gRPC module for PHP'
2019-09-27 02:16:25 +00:00
depends=('grpc' 'php')
backup=('etc/php/conf.d/grpc.ini')
# Install PHP extension.
cd "$srcdir/$pkgbase-$pkgver/src/php/ext/$pkgbase"
make install "INSTALL_ROOT=$pkgdir"
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
# Remove RPATH
chrpath -d "$pkgdir/usr/lib/php/modules/grpc.so"
echo ';extension=grpc.so' >grpc.ini
install -Dm644 grpc.ini "$pkgdir/etc/php/conf.d/grpc.ini"
}
2021-01-29 01:10:13 +00:00
package_php7-grpc() {
pkgdesc='gRPC module for PHP'
depends=('grpc' 'php7')
backup=('etc/php7/conf.d/grpc.ini')
# Install PHP extension.
cd "$srcdir/$pkgbase-$pkgver/src/php7/ext/$pkgbase"
make install "INSTALL_ROOT=$pkgdir"
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
# Remove RPATH
chrpath -d "$pkgdir/usr/lib/php7/modules/grpc.so"
echo ';extension=grpc.so' >grpc.ini
install -Dm644 grpc.ini "$pkgdir/etc/php7/conf.d/grpc.ini"
}
2019-09-27 02:16:25 +00:00
package_grpc-cli() {
2020-02-10 19:18:42 +00:00
pkgdesc='gRPC protocol buffers cli'
2020-12-04 13:54:43 +00:00
depends=('grpc')
2019-09-27 02:16:25 +00:00
cd "$srcdir/$pkgbase-$pkgver"
2020-04-16 13:34:56 +00:00
install -dm0755 "$pkgdir/usr/lib"
2020-06-02 12:44:42 +00:00
cp -a build/libgrpc++_test_config.so* "$pkgdir/usr/lib/"
2021-01-29 01:10:13 +00:00
for solib in build/third_party/abseil-cpp/absl/flags/*.so; do
install -t "$pkgdir/usr/lib" "$solib"
done
2020-04-16 13:34:56 +00:00
install -Dm0755 build/grpc_cli "$pkgdir/usr/bin/grpc_cli"
2019-09-27 02:16:25 +00:00
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}