aboutsummaryrefslogtreecommitdiffstats
path: root/main/protobuf/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'main/protobuf/APKBUILD')
-rw-r--r--main/protobuf/APKBUILD155
1 files changed, 82 insertions, 73 deletions
diff --git a/main/protobuf/APKBUILD b/main/protobuf/APKBUILD
index 59646818c4d..f29be63c6d8 100644
--- a/main/protobuf/APKBUILD
+++ b/main/protobuf/APKBUILD
@@ -2,19 +2,33 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=protobuf
_gemname=google-protobuf
-pkgver=3.15.7
-_tstver=5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081
+pkgver=24.4
+_rubyver=3.$pkgver
pkgrel=1
pkgdesc="Library for extensible, efficient structure packing"
-url="https://github.com/google/protobuf"
-# Test protobuf-test fails on 32 bit arches.
-# See https://gitlab.alpinelinux.org/alpine/aports/-/issues/12584
+url="https://github.com/protocolbuffers/protobuf"
arch="all"
license="BSD-3-Clause"
-depends="protoc=$pkgver-r$pkgrel libprotoc=$pkgver-r$pkgrel
- libprotobuf=$pkgver-r$pkgrel libprotobuf-lite=$pkgver-r$pkgrel"
-depends_dev="zlib-dev"
-makedepends="$depends_dev autoconf automake libtool ruby ruby-dev ruby-rake"
+depends="
+ protoc=$pkgver-r$pkgrel
+ libprotoc=$pkgver-r$pkgrel
+ libprotobuf=$pkgver-r$pkgrel
+ libprotobuf-lite=$pkgver-r$pkgrel
+ "
+depends_dev="
+ protoc=$pkgver-r$pkgrel
+ zlib-dev
+ "
+makedepends="
+ $depends_dev
+ abseil-cpp-dev
+ cmake
+ ruby
+ ruby-dev
+ ruby-rake
+ samurai
+ "
+checkdepends="gtest-dev"
subpackages="
ruby-$_gemname:_ruby
$pkgname-dev
@@ -24,40 +38,40 @@ subpackages="
libprotobuf
libprotobuf-lite
"
-# googletest 1.8 is not enought for protobuf
-# https://github.com/google/googletest/issues/2267
-source="$pkgname-$pkgver.tar.gz::https://github.com/google/protobuf/archive/v$pkgver.tar.gz
- googletest-$_tstver.tar.gz::https://github.com/google/googletest/archive/$_tstver.tar.gz
- musl-fix.patch
- trim-rakefile.patch
+ # exclude.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/protocolbuffers/protobuf/archive/refs/tags/v$pkgver.tar.gz
+ exclude.patch
+ protoc-cmake.patch
ruby-fix-cflags.patch
skip-failing-tests.patch
+ soversion.patch
+ trim-rakefile.patch
"
-prepare() {
- default_prepare
-
- ./autogen.sh
-
- # symlink tests to the test directory
- rm -rf third_party/googletest
- ln -sf "$srcdir"/googletest-$_tstver \
- "$builddir"/third_party/googletest
-}
+# fails some
+case "$CARCH" in
+armhf) options="$options !check" ;;
+esac
build() {
- case "$CARCH" in mips|mipsel) export LIBS="$LIBS -latomic";; esac
-
- CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks -Wno-error" \
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var
- make
+ export CFLAGS="$CFLAGS -DNDEBUG -O2 -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -DNDEBUG -O2 -flto=auto -Wno-deprecated-declarations"
+
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -Dprotobuf_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
+ -Dprotobuf_BUILD_LIBPROTOC=ON \
+ -Dprotobuf_ABSL_PROVIDER="package" \
+ -Dprotobuf_ALLOW_CCACHE=ON \
+ -Dprotobuf_USE_EXTERNAL_GTEST=ON
+ cmake --build build
cd "$builddir"/ruby
+ export PATH="$PATH:$builddir/build"
+
# Generate proto files for built-in protocols.
rake genproto
@@ -68,31 +82,26 @@ build() {
--no-document \
--verbose \
$_gemname
-
- # build test-suite
- local test; for test in googletest googlemock; do
- cd "$builddir/third_party/googletest/$test"
- autoreconf -vfi
- ./configure
- make
- done
}
# TODO: Run tests for ruby gem.
check() {
- make check
+ ctest --test-dir build --output-on-failure
}
package() {
- make DESTDIR="$pkgdir" install
-}
+ DESTDIR="$pkgdir" cmake --install build
-_ruby() {
- depends=""
- pkgdesc="Ruby bindings to Google's data interchange format"
+ sed -i \
+ -e "/Requires:/s|;| |g" \
+ -e "/Requires:/s|::|_|g" \
+ "$pkgdir"/usr/lib/pkgconfig/protobuf.pc
- local gemdir="$subpkgdir/$(ruby -e 'puts Gem.default_dir')"
- cd "$builddir"/ruby/dist
+ install -Dm644 editors/proto.vim \
+ "$pkgdir"/usr/share/vim/vimfiles/syntax/proto.vim
+
+ local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"
+ cd ruby/dist
mkdir -p "$gemdir"
cp -r extensions gems specifications "$gemdir"/
@@ -101,8 +110,15 @@ _ruby() {
find "$gemdir"/gems/ -name "*.so" -delete
# Remove unnecessary files.
- cd "$gemdir"/gems/$_gemname-$pkgver
- rm -r ext/ tests/
+ cd "$gemdir"/gems/$_gemname-$_rubyver
+ rm -r ext/
+}
+
+_ruby() {
+ depends=""
+ pkgdesc="Ruby bindings to Google's data interchange format"
+
+ amove usr/lib/ruby/gems
}
vim() {
@@ -110,50 +126,43 @@ vim() {
depends=""
install_if="$pkgname=$pkgver-r$pkgrel vim"
- install -Dm644 "$builddir"/editors/proto.vim \
- "$subpkgdir"/usr/share/vim/vimfiles/syntax/proto.vim
+ amove usr/share/vim/vimfiles/syntax/proto.vim
}
libprotoc() {
depends=""
pkgdesc="Runtime library for Protocol Buffer compiler"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libprotoc*.so.* "$subpkgdir"/usr/lib
+ amove usr/lib/libprotoc.so.*
}
protoc() {
depends=""
pkgdesc="Protocol buffer compiler binary and library"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/protoc "$subpkgdir"/usr/bin
+ amove usr/bin/protoc*
}
libprotobuf() {
depends=""
pkgdesc="Runtime library for C++ users of protocol buffers"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libprotobuf.so.* "$subpkgdir"/usr/lib
+ amove usr/lib/libprotobuf.so.*
}
lite() {
depends=""
pkgdesc="Runtime library for C++ users with 'lite runtime' setting of protocol buffers"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libprotobuf-lite.so.* "$subpkgdir"/usr/lib
-}
-
-dev() {
- depends_dev="$depends_dev protoc=$pkgver-r$pkgrel"
- default_dev
+ amove usr/lib/libprotobuf-lite.so.*
}
-sha512sums="2b18ccba1ff8a0623c52abed0e0674bc6cfa2cd10d49764031a47e68f654f54083f4a4f9e3a94d833a6808426904ee642f173641063e79cb41a61fc348d603ac protobuf-3.15.7.tar.gz
-623b077b3334958fafcbc34aa85891883277994af33be530efd903f47738a3e3562001cbf3b6da1a5e7d03803c5bd51bcc1fab81490db85d5a4f2b15e7de1495 googletest-5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.tar.gz
-8f06fb985eef6fdfe613cd335e07960f0764a6dc8e2e1344203d703d9218d3a243594a4c11dfb9ed7ec35bc1f5ef97f502dcc16c47c5760ad6eaf2f782559dec musl-fix.patch
-1eb55b4483dab8a540f9011feeb1969a921b5cf859c0f4535e85c4e9cc2fa62e1b9a1fb4c08ba56dcf408cbeb1e17ee7809827f32ff6e5649b6fa591dc7722cd trim-rakefile.patch
-fa2231a3841fda1baef2af446e6d8fa8f6cde2fad36c0f2678b37ce089d65df97820f673e735362b75a1b0a778eca00be331e8c3abc77ea3f723339fb7bd02b2 ruby-fix-cflags.patch
-b7a9188e9144869c49f5d589b5050fca8bc6ad16009340315072d4285020050e89154e65452aad8f9d7e38c4b40cdba6d73982d05d324bb34864b85891712af5 skip-failing-tests.patch"
+sha512sums="
+52b6ab5587d03cbd1f35cf3cdc388e1710fa50f3031559ac53cf754965407ded7602cdead56080444ab695588112cc3391a1d7fdd5e565d90d0af7ad08706315 protobuf-24.4.tar.gz
+0d46d105a0670ab5cfcb04ed534927a71613234a88efede0b20d426e1caaa708e6ff275a09c5dab7786fe26e69e0882f022b893302e4869006b4ac55fc6172e5 exclude.patch
+16b8ee0e50dbb2144ddb83654a63e410b4218e667b6b8b77c7b6f9797508f63c3e8be0f9711841bb6ebbed0883cda2394b219a62b468240f65f4dac418b5a56e protoc-cmake.patch
+0cb202a6151ae3746c09e85f2e4ce9abb0d810d4a3c84cb647fde407cf8d13894d3c9b340e06d7a3a85669da1899db265d26d8309d59249f841a40a66e045c83 ruby-fix-cflags.patch
+46b6644ccf6e142ef26cddd818466caab2696b685f3865061fe0e45b65cefc5598add4a8479842ca1aae948d37b3c2c6944913c62a00422fa91b694277986c73 skip-failing-tests.patch
+850dc1d6fd3ea01f1689fd700ac35e7da0882092ab34c616702e01bdf4b5327b8ab27381ecf291431a94f54c89d31707a4a171929937e880543974cb64f9e685 soversion.patch
+13514a456a50d7243baa23fe43586fc4544cda87b9e2a5afe9d2fac8afca8e8853f9b42232c3fff4c5cf2df443af32f944f451daa1d604d80fd03ee4e7abed3e trim-rakefile.patch
+"