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)

Reply via email to