Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-sentencepiece for
openSUSE:Factory checked in at 2026-11-07 23:33:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sentencepiece (Old)
and /work/SRC/openSUSE:Factory/.python-sentencepiece.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sentencepiece"
Sat Nov 7 23:33:31 2026 rev:2 rq:1396010 version:0.2.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-sentencepiece/python-sentencepiece.changes
2026-07-14 13:47:17.465582880 +0200
+++
/work/SRC/openSUSE:Factory/.python-sentencepiece.new.3759290/python-sentencepiece.changes
2026-11-07 23:34:19.246780825 +0100
@@ -1,0 +2,30 @@
+Sat Nov 7 12:48:59 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 0.2.3:
+ * New SentencePiece Lite zero-dependency C++20 runtime
+ (header-only here; lite/ itself stays disabled)
+ * Training: auto character coverage, sparse L1 Unigram pruning,
+ custom pretokenizer callback, unk_id=-1 with byte fallback
+ * Python: pickling preserves encode options, normalizer flag
+ fixes, decode/encode edge cases, buffer-protocol inputs,
+ free-threaded fixes; requires Python >= 3.10
+ * Performance work plus OSS-Fuzz robustness fixes (bounds checks,
+ fuzzer-timeout and input-validation hardening)
+ * Removed long-deprecated APIs: SetVocabulary/ResetVocabulary/
+ LoadVocabulary, SampleEncodeAndScore*, CalculateEntropy,
+ *AsSerializedProto variants, OverrideNormalizerSpec and
+ __getstate_for_pickle__; several TrainerSpec fields dropped
+ from the spm_train flags
+ * C++20 baseline; build against system protobuf 36.2 and flatc
+- Packaging: upstream no longer bundles abseil-cpp, so drop
+ sentencepiece-use-bundled-abseil.patch (no longer applies) and
+ vendor abseil-cpp 20260817.0, the exact upstream pin, for the
+ offline FetchContent build instead
+- Add sentencepiece-system-flatc.patch (schema header from the
+ system flatc, no flatbuffers clone) and
+ sentencepiece-link-system-protobuf-lite.patch (link the system
+ protobuf-lite into the extension)
+- Raise pybind11 floor to >= 2.13 per upstream (built against 3.1;
+ upstream caps < 3.1 over a batch-decode slowdown)
+
+-------------------------------------------------------------------
Old:
----
sentencepiece-0.2.2.tar.gz
sentencepiece-use-bundled-abseil.patch
New:
----
abseil-cpp-20260817.0.tar.gz
sentencepiece-0.2.3.tar.gz
sentencepiece-link-system-protobuf-lite.patch
sentencepiece-system-flatc.patch
----------(Old B)----------
Old:- Packaging: upstream no longer bundles abseil-cpp, so drop
sentencepiece-use-bundled-abseil.patch (no longer applies) and
vendor abseil-cpp 20260817.0, the exact upstream pin, for the
----------(Old E)----------
----------(New B)----------
New: system flatc, no flatbuffers clone) and
sentencepiece-link-system-protobuf-lite.patch (link the system
protobuf-lite into the extension)
New: offline FetchContent build instead
- Add sentencepiece-system-flatc.patch (schema header from the
system flatc, no flatbuffers clone) and
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sentencepiece.spec ++++++
--- /var/tmp/diff_new_pack.gUQKty/_old 2026-11-07 23:34:20.787844500 +0100
+++ /var/tmp/diff_new_pack.gUQKty/_new 2026-11-07 23:34:20.789844582 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-sentencepiece
#
-# Copyright (c) 2026 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,17 +18,20 @@
%{?sle15_python_module_pythons}
Name: python-sentencepiece
-Version: 0.2.2
+Version: 0.2.3
Release: 0
Summary: Unsupervised text tokenizer and detokenizer
License: Apache-2.0
URL: https://github.com/google/sentencepiece
Source:
https://files.pythonhosted.org/packages/source/s/sentencepiece/sentencepiece-%{version}.tar.gz
-# PATCH-FIX-OPENSUSE sentencepiece-use-bundled-abseil.patch -- build the
bundled abseil-cpp directly instead of FetchContent git-cloning it (no network
in build env)
-Patch0: sentencepiece-use-bundled-abseil.patch
+Source1:
https://github.com/abseil/abseil-cpp/archive/refs/tags/20260817.0.tar.gz#/abseil-cpp-20260817.0.tar.gz
+# PATCH-FIX-OPENSUSE sentencepiece-system-flatc.patch -- generate the lite
schema header with the system flatc instead of FetchContent git-cloning
flatbuffers (no network in build env)
+Patch0: sentencepiece-system-flatc.patch
+# PATCH-FIX-OPENSUSE sentencepiece-link-system-protobuf-lite.patch -- link the
system protobuf-lite (SPM_PROTOBUF_PROVIDER=package), which leaves no static
lib in the prebuilt tree for setup.py to find
+Patch1: sentencepiece-link-system-protobuf-lite.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
-BuildRequires: %{python_module pybind11 >= 2.12}
+BuildRequires: %{python_module pybind11 >= 2.13}
BuildRequires: %{python_module pybind11-common-devel}
BuildRequires: %{python_module setuptools >= 61.0}
BuildRequires: %{python_module wheel}
@@ -37,6 +40,9 @@
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
+BuildRequires: pkgconfig(flatbuffers)
+BuildRequires: pkgconfig(protobuf)
+BuildRequires: pkgconfig(protobuf-lite)
# SECTION test requirements
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module protobuf}
@@ -55,11 +61,32 @@
%prep
%autosetup -p1 -n sentencepiece-%{version}
+# Stage vendored abseil-cpp (upstream pin) in a sibling build dir: cmake
+# FetchContent has no network on the build workers, and the wheel build
+# moves a ./build dir aside, so the prebuilt tree must live outside it.
+mkdir -p ../build/_deps
+tar -xzf %{SOURCE1} -C ../build/_deps
+rm -rf ../build/_deps/abseil-cpp-src
+mv ../build/_deps/abseil-cpp-*/ ../build/_deps/abseil-cpp-src
%build
-# The setup builds the bundled SentencePiece C++ library (with its vendored
-# abseil-cpp and protobuf-lite) via cmake and statically links it into the
-# _sentencepiece pybind11 extension; no system sentencepiece is required.
+# Prebuild the C++ lib for setup.py (build_bundled.sh would git-clone deps);
+# vendored abseil-cpp (upstream pin), system protobuf/flatc (same versions).
+# The tree lives in ../build, which setup.py checks before ./build.
+cmake -S sentencepiece -B ../build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DSPM_ABSL_PROVIDER=module \
+ "-DFETCHCONTENT_SOURCE_DIR_ABSEIL-CPP=$PWD/../build/_deps/abseil-cpp-src" \
+ -DSPM_PROTOBUF_PROVIDER=package \
+ -DSPM_FLATC_EXECUTABLE=%{_bindir}/flatc \
+ -DSPM_ENABLE_SHARED=OFF \
+ -DSPM_ENABLE_LITE=OFF \
+ -DSPM_DISABLE_EMBEDDED_DATA=ON \
+ -DCMAKE_INSTALL_PREFIX=$PWD/../build \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DCMAKE_CXX_FLAGS="-fPIC -fvisibility=default -ffunction-sections
-fdata-sections"
+# Build and install into ../build, where setup.py picks the static libs up.
+cmake --build ../build --target install --parallel "$(nproc)"
%pyproject_wheel
%install
@@ -71,7 +98,7 @@
# Factory. Exclude gen_stubs/clean manual tests that need extra tooling.
%pytest_arch test/sentencepiece_test.py test/numpy_test.py
-%files %{python_files}
+%files %python_files
%license sentencepiece/LICENSE
%doc README.md
%{python_sitearch}/sentencepiece/
++++++ sentencepiece-0.2.2.tar.gz -> sentencepiece-0.2.3.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-sentencepiece/sentencepiece-0.2.2.tar.gz
/work/SRC/openSUSE:Factory/.python-sentencepiece.new.3759290/sentencepiece-0.2.3.tar.gz
differ: char 5, line 1
++++++ sentencepiece-link-system-protobuf-lite.patch ++++++
--- a/setup.py 2026-11-05 02:03:22.000000000 +0000
+++ b/setup.py 2026-11-07 00:00:00.000000000 +0000
@@ -106,6 +106,10 @@
cflags, libs = get_cflags_and_libs('./build')
abseil_libs = find_abseil_lib('./build')
+ # openSUSE: protobuf comes from the system (SPM_PROTOBUF_PROVIDER=package),
+ # so no static libprotobuf-lite sits in ./build — link the system library.
+ abseil_libs.append('-lprotobuf-lite')
+
if len(libs) == 0:
subprocess.check_call(['./build_bundled.sh'])
cflags, libs = get_cflags_and_libs('./build')
++++++ sentencepiece-system-flatc.patch ++++++
--- a/sentencepiece/CMakeLists.txt 2026-11-05 02:03:22.000000000 +0000
+++ b/sentencepiece/CMakeLists.txt 2026-11-07 00:00:00.000000000 +0000
@@ -256,7 +256,10 @@
endif()
# FlatBuffers
-if (NOT TARGET flatbuffers)
+# openSUSE: with SPM_FLATC_EXECUTABLE the schema header is generated by the
+# system flatc and the runtime used here is header-only, so skip the
+# FetchContent clone (no network on the build workers).
+if (NOT TARGET flatbuffers AND NOT SPM_FLATC_EXECUTABLE)
include(FetchContent)
set(FLATBUFFERS_BUILD_TESTS OFF CACHE BOOL "Disable flatbuffers tests" FORCE)
set(FLATBUFFERS_BUILD_FLATLIB ON CACHE BOOL "Enable flatbuffers library"
FORCE)
@@ -278,10 +281,10 @@
if (flatbuffers_SOURCE_DIR)
file(REMOVE_RECURSE "${flatbuffers_SOURCE_DIR}/tests/fuzzer")
endif()
- if (SPM_FLATC_EXECUTABLE AND NOT TARGET flatc)
- add_executable(flatc IMPORTED GLOBAL)
- set_target_properties(flatc PROPERTIES IMPORTED_LOCATION
"${SPM_FLATC_EXECUTABLE}")
- endif()
+endif()
+if (SPM_FLATC_EXECUTABLE AND NOT TARGET flatc)
+ add_executable(flatc IMPORTED GLOBAL)
+ set_target_properties(flatc PROPERTIES IMPORTED_LOCATION
"${SPM_FLATC_EXECUTABLE}")
endif()
# Googletest (Testing; also linked by the benchmarks)