diff options
Diffstat (limited to 'main/protobuf/APKBUILD')
-rw-r--r-- | main/protobuf/APKBUILD | 157 |
1 files changed, 85 insertions, 72 deletions
diff --git a/main/protobuf/APKBUILD b/main/protobuf/APKBUILD index 41ab89e5910..f29be63c6d8 100644 --- a/main/protobuf/APKBUILD +++ b/main/protobuf/APKBUILD @@ -1,18 +1,34 @@ -# Contributor: Kiyoshi Aman <kiyoshi.aman@gmail.com> +# Contributor: Sheila Aman <sheila@vulpine.house> # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=protobuf _gemname=google-protobuf -pkgver=3.12.3 -_tstver=5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081 -pkgrel=0 +pkgver=24.4 +_rubyver=3.$pkgver +pkgrel=1 pkgdesc="Library for extensible, efficient structure packing" -url="https://github.com/google/protobuf" +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 @@ -22,39 +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/* - 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" \ - ./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 @@ -65,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"/ @@ -98,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() { @@ -107,49 +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="1d17a9d728443b42104b1b2bc473825efa49e0838ac5a29085cbf3da641ebae2f9a46f83de916dfccdf30eb075489759b53c48295a3632748e66debe58788997 protobuf-3.12.3.tar.gz -623b077b3334958fafcbc34aa85891883277994af33be530efd903f47738a3e3562001cbf3b6da1a5e7d03803c5bd51bcc1fab81490db85d5a4f2b15e7de1495 googletest-5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.tar.gz -875592bc5dc5efe9087ea1b340673f54c984ecd5aa3b110a2da136bdc28009af7ce1a9c57f4747ff809fc02eb6c39a0209c277177172af467a54172d9700188a musl-fix.patch -b9913061cda613219c3d3d1839dc05e95d194ffb010f5bda84df2969cbc8a7f3d33e2fe8e0d1269f5aa9ff0cfb77d5a4abbd21f1434c04b0b976f781c628a722 trim-rakefile.patch -e2063bfb3f323625449d71cc2fe91e848a93af50cb1688ec5635bb1088aacd17a3282b0e91e05109abcc5fdbd62dff88f2b90bb78273b24f98998ed0009b1170 ruby-fix-cflags.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 +" |