From 409cc462b580f29d238df7a974057f1ef07541ce Mon Sep 17 00:00:00 2001 From: termux-pacman-bot Date: Thu, 1 May 2025 19:35:57 +0000 Subject: [PATCH] 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` --- packages/libprotobuf/build.sh | 17 +++---- packages/libprotobuf/protobuf.subpackage.sh | 1 - packages/protobuf-static/build.sh | 51 ++++++--------------- 3 files changed, 22 insertions(+), 47 deletions(-) diff --git a/packages/libprotobuf/build.sh b/packages/libprotobuf/build.sh index 9b83a828bb..cf835b8448 100644 --- a/packages/libprotobuf/build.sh +++ b/packages/libprotobuf/build.sh @@ -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 \ diff --git a/packages/libprotobuf/protobuf.subpackage.sh b/packages/libprotobuf/protobuf.subpackage.sh index fb3847afd1..1e6fdd2e34 100644 --- a/packages/libprotobuf/protobuf.subpackage.sh +++ b/packages/libprotobuf/protobuf.subpackage.sh @@ -5,4 +5,3 @@ lib/libprotoc.so* lib/pkgconfig/protobuf-lite.pc " TERMUX_SUBPKG_DESCRIPTION="Compiler for protocol buffer definition files" - diff --git a/packages/protobuf-static/build.sh b/packages/protobuf-static/build.sh index d200ebf432..d8e3321f7b 100644 --- a/packages/protobuf-static/build.sh +++ b/packages/protobuf-static/build.sh @@ -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 -}