diff --git a/community/grpc/APKBUILD b/community/grpc/APKBUILD
index 43f6de887aaf48a0f8b0f4350192a4bf4c3dd720..c60444f5db793e284147558dea026b8401e1984e 100644
--- a/community/grpc/APKBUILD
+++ b/community/grpc/APKBUILD
@@ -16,6 +16,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/grpc/grpc/archive/v$pkgver.t
 		googletest-$_googletest_rev.tar.gz::https://github.com/google/googletest/archive/$_googletest_rev.tar.gz
 		01-chttp2-maybe-uninitialized.patch
 		disable-Werror.patch
+		fix-install.patch
 		"
 builddir="$srcdir/$pkgname-$pkgver"
 options="!check"
@@ -30,20 +31,23 @@ unpack() {
 build() {
 	cd "$builddir"
 	make
+	make grpc_cli
 }
 
 package() {
 	cd "$builddir"
-	make install prefix="$pkgdir/usr"
+	make install install-grpc-cli prefix="$pkgdir/usr"
 	rm -f "$pkgdir/usr/share/grpc/roots.pem"
 }
 
 cli() {
-	cd "$builddir"
-	make install-grpc-cli prefix="$subpkgdir/usr"
+	pkgdesc="gRPC command line tool"
+	mkdir -p "$subpkgdir"/usr/bin
+	mv "$pkgdir"/usr/bin/grpc_cli "$subpkgdir"/usr/bin/
 }
 
 sha512sums="a568627073a39ef8799672f8b365ac9a742468be969b528c518782f5783b22a9c519f5cf7e31d3c225e1d9a866f036beb850c7ddbe07ada6e6b7056684c64b2d  grpc-1.21.3.tar.gz
 dd55ab745c43c5c953d8cebd2fb44b4bb2cb87c95194965bffd0bd8219332d5f073c22947c8a8b1e2652805dff1cff4b93fe69645d4c0d635f98ae2cf54af14a  googletest-ec44c6c1675c25b9827aacd08c02433cccde7780.tar.gz
 7fa146ce86ddd4f160bb1ca9ff01cb7aca6b2b8c9aa50e4fa6b84504b9117b104be0d1e31ccb452d846549dfe1e9012ceccfcdc1f2357ed567621d71fb8b08c5  01-chttp2-maybe-uninitialized.patch
-d50885978466137e595ccb8e45fc7e283ff18b61775c4e0d92c0f56310c719802e591816955d800e71aab1da36b52f938f32d46bed3c230dd2b1b08dca7f2a91  disable-Werror.patch"
+d50885978466137e595ccb8e45fc7e283ff18b61775c4e0d92c0f56310c719802e591816955d800e71aab1da36b52f938f32d46bed3c230dd2b1b08dca7f2a91  disable-Werror.patch
+f72be2359d89278cec96049833c7c94868f45f3670a6eb900921e0139514f160aac40408755b8fdc8c2e612678037027266d80025a12781253ad1293e24bdead  fix-install.patch"
diff --git a/community/grpc/fix-install.patch b/community/grpc/fix-install.patch
new file mode 100644
index 0000000000000000000000000000000000000000..999e446f1192acd4954e82897fe225d4a3907798
--- /dev/null
+++ b/community/grpc/fix-install.patch
@@ -0,0 +1,15 @@
+fix the install error: make: execvp: /bin/sh: Argument list too long
+
+diff --git a/Makefile b/Makefile
+index 983d120..f74fa98 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2982,7 +2982,7 @@ install-headers_c:
+ install-headers_cxx:
+ 	$(E) "[INSTALL] Installing public C++ headers"
+ 	$(Q) $(foreach h, $(PUBLIC_HEADERS_CXX), $(INSTALL) -d $(prefix)/$(dir $(h)) && ) exit 0 || exit 1
+-	$(Q) $(foreach h, $(PUBLIC_HEADERS_CXX), $(INSTALL) $(h) $(prefix)/$(h) && ) exit 0 || exit 1
++	$(Q) for h in $(PUBLIC_HEADERS_CXX); do $(INSTALL) "$$h" $(prefix)/$$h || exit 1; done
+ 
+ install-static: install-static_c install-static_cxx
+