fix(main/{libprotobuf,protobuf-static}): fix conflicts and provide licenses

- `libprotobuf`:
  - conflict with `protobuf-static` (because of `libupb.a`)
  - add license file for `libutf8-range`

- `protobuf-static`:
  - align `TERMUX_PKG_REVISION` with `libprotobuf`
  - conflict with `libprotobuf` (because of `libupb.a`)
  - provide its own `libutf8-range` and `protoc` (because of conflict with `libprotobuf` preventing it from depending on `protobuf` [which is `protoc`])
  - add license file for `libutf8-range`
This commit is contained in:
termux-pacman-bot
2025-05-01 19:35:57 +00:00
parent 1757a042ee
commit 409cc462b5
3 changed files with 22 additions and 47 deletions

View File

@@ -2,28 +2,32 @@ TERMUX_PKG_HOMEPAGE=https://github.com/protocolbuffers/protobuf
TERMUX_PKG_DESCRIPTION="Protocol buffers C++ library"
# utf8_range is licensed under MIT
TERMUX_PKG_LICENSE="BSD 3-Clause, MIT"
TERMUX_PKG_LICENSE_FILE="LICENSE"
TERMUX_PKG_LICENSE_FILE="
LICENSE
third_party/utf8_range/LICENSE
"
TERMUX_PKG_MAINTAINER="@termux"
# When bumping version:
# - update SHA256 checksum for $_PROTOBUF_ZIP in
# $TERMUX_SCRIPTDIR/scripts/build/setup/termux_setup_protobuf.sh
# - ALWAYS bump revision of reverse dependencies and rebuild them.
TERMUX_PKG_VERSION="2:30.0"
TERMUX_PKG_REVISION=1
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://github.com/protocolbuffers/protobuf/archive/v${TERMUX_PKG_VERSION#*:}.tar.gz
TERMUX_PKG_SHA256=9df0e9e8ebe39f4fbbb9cf7db3d811287fe3616b2f191eb2bf5eaa12539c881f
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_DEPENDS="abseil-cpp, libc++, zlib"
TERMUX_PKG_BREAKS="libprotobuf-dev, protobuf-static (<< ${TERMUX_PKG_VERSION#*:}), libutf8-range"
TERMUX_PKG_REPLACES="libprotobuf-dev, libutf8-range"
TERMUX_PKG_BREAKS="libprotobuf-dev, protobuf-static, libutf8-range"
TERMUX_PKG_REPLACES="libprotobuf-dev, protobuf-static, libutf8-range"
TERMUX_PKG_CONFLICTS="protobuf-static"
TERMUX_PKG_FORCE_CMAKE=true
TERMUX_PKG_NO_STATICSPLIT=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-Dprotobuf_ABSL_PROVIDER=package
-Dprotobuf_BUILD_TESTS=OFF
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_LIBDIR=lib
"
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_post_get_source() {
# Version guard
@@ -35,9 +39,6 @@ termux_step_post_get_source() {
}
termux_step_post_make_install() {
install -Dm600 -t $TERMUX_PREFIX/share/doc/libutf8-range \
$TERMUX_PKG_SRCDIR/third_party/utf8_range/LICENSE
# Copy lib/*.cmake to opt/protobuf-cmake/shared for future use
mkdir -p $TERMUX_PREFIX/opt/protobuf-cmake/shared
cp $TERMUX_PREFIX/lib/cmake/protobuf/protobuf-targets{,-release}.cmake \

View File

@@ -5,4 +5,3 @@ lib/libprotoc.so*
lib/pkgconfig/protobuf-lite.pc
"
TERMUX_SUBPKG_DESCRIPTION="Compiler for protocol buffer definition files"

View File

@@ -1,23 +1,22 @@
TERMUX_PKG_HOMEPAGE=https://github.com/protocolbuffers/protobuf
TERMUX_PKG_DESCRIPTION="Protocol buffers C++ library (static)"
TERMUX_PKG_LICENSE="BSD 3-Clause"
# utf8_range is licensed under MIT
TERMUX_PKG_LICENSE="BSD 3-Clause, MIT"
TERMUX_PKG_LICENSE_FILE="
LICENSE
third_party/utf8_range/LICENSE
"
TERMUX_PKG_MAINTAINER="@termux"
# Please align the version with `libprotobuf` package.
# Please align the version and revision with `libprotobuf` package.
TERMUX_PKG_VERSION=30.0
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://github.com/protocolbuffers/protobuf/archive/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=9df0e9e8ebe39f4fbbb9cf7db3d811287fe3616b2f191eb2bf5eaa12539c881f
v_proto_version_shared=$(. $TERMUX_SCRIPTDIR/packages/libprotobuf/build.sh; echo ${TERMUX_PKG_VERSION})
v_proto_version_revision=$(TERMUX_PKG_REVISION=0; . $TERMUX_SCRIPTDIR/packages/libprotobuf/build.sh; echo ${TERMUX_PKG_REVISION})
v_proto_extract_version="${v_proto_version_shared}-${v_proto_version_revision}"
if [ "$v_proto_version_revision" = 0 ]; then
v_proto_extract_version="${v_proto_version_shared}"
fi
TERMUX_PKG_DEPENDS="abseil-cpp, protobuf (= ${v_proto_extract_version})"
unset v_proto_version_shared v_proto_version_revision v_proto_extract_version
TERMUX_PKG_BUILD_DEPENDS="libc++, zlib"
TERMUX_PKG_BREAKS="libprotobuf (<< 2:21.12)"
TERMUX_PKG_REPLACES="libprotobuf (<< 2:21.12)"
TERMUX_PKG_CONFLICTS="protobuf-dev"
TERMUX_PKG_AUTO_UPDATE=false
TERMUX_PKG_DEPENDS="abseil-cpp, libc++, zlib"
TERMUX_PKG_BREAKS="libprotobuf"
TERMUX_PKG_REPLACES="libprotobuf"
TERMUX_PKG_CONFLICTS="libprotobuf, protobuf-dev"
TERMUX_PKG_NO_STATICSPLIT=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-Dprotobuf_ABSL_PROVIDER=package
@@ -35,33 +34,9 @@ termux_step_post_get_source() {
fi
}
termux_step_pre_configure() {
# Version guard
local ver_shared=$(. $TERMUX_SCRIPTDIR/packages/libprotobuf/build.sh; echo ${TERMUX_PKG_VERSION#*:})
local ver_static=${TERMUX_PKG_VERSION#*:}
if [ "${ver_shared}" != "${ver_static}" ]; then
termux_error_exit "Version mismatch between libprotobuf and protobuf-static."
fi
}
termux_step_post_make_install() {
# Copy lib/*.cmake to opt/protobuf-cmake/static for future use
mkdir -p $TERMUX_PREFIX/opt/protobuf-cmake/static
cp $TERMUX_PREFIX/lib/cmake/protobuf/protobuf-targets{,-release}.cmake \
$TERMUX_PREFIX/opt/protobuf-cmake/static/
}
termux_step_post_massage() {
find . ! -type d \
! -wholename "./lib/*.a" \
! -wholename "./lib/cmake/protobuf/protobuf-targets-release.cmake" \
! -wholename "./lib/cmake/protobuf/protobuf-targets.cmake" \
! -wholename "./opt/protobuf-cmake/static/protobuf-targets-release.cmake" \
! -wholename "./opt/protobuf-cmake/static/protobuf-targets.cmake" \
! -wholename "./share/doc/$TERMUX_PKG_NAME/*" \
-exec rm -f '{}' \;
find . ! -type d \
-wholename "./lib/libutf8_*" \
-exec rm -f '{}' \;
find . -type d -empty -delete
}