Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-sglang for openSUSE:Factory 
checked in at 2026-08-25 13:20:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sglang (Old)
 and      /work/SRC/openSUSE:Factory/.python-sglang.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-sglang"

Tue Aug 25 13:20:03 2026 rev:2 rq:1373479 version:0.5.18

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sglang/python-sglang.changes      
2026-08-24 15:43:54.248320692 +0200
+++ /work/SRC/openSUSE:Factory/.python-sglang.new.1258/python-sglang.changes    
2026-08-25 13:20:17.098370872 +0200
@@ -1,0 +2,33 @@
+Mon Aug 24 18:24:18 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 0.5.18:
+  * Upstream removed the torchao integration; drop the
+    python-torchao dependency
+  * Rust PyO3 extension modules moved to
+    sglang.srt.rust_extensions._multimodal and ._grpc
+  * Triton, FlashInfer, Inductor, DeepGEMM and CUDA driver caches
+    all moved under SGLANG_CACHE_DIR
+  * Overlapped checkpoint staging at startup, enabled with
+    --startup-weight-load-mode overlap
+  * TP LMHead allgather and scatter fused into one all-to-all for
+    pure-DP dp-attention
+  * Non-fused allreduce reuses the FlashInfer MNNVL workspace
+    instead of falling back to NCCL
+  * Remote media downloads are bounded to 64 MiB and validate
+    redirects, with opt-in hostname allowlisting
+  * New models: Muse Glimmer, Intern-S2-Mobius, SANA-Video,
+    LingBot-Video-MoE, LTX-2.5, Cosmos3, LongCat-Image
+  * Removed 22 unmaintained benchmarks
+  * Reverted the parallel request lifecycle tracking that shipped
+    with the 0.5.17 gRPC generation semantics
+- Rebase sglang-relax-cpu-requirements.patch and
+  sglang-cpu-rust-exts.patch
+- Rebase sglang-cpu-triton-stub.patch onto _platform_stubs.py,
+  which replaced _triton_stub.py upstream; it also imports
+  importlib.machinery and importlib.util explicitly, which
+  Python 3.14 no longer provides implicitly
+- Add BSD-2-Clause to License: the numpy crate in the sglang-mm
+  dependency graph is BSD-2-Clause only
+- Regenerate vendor.tar.zst
+
+-------------------------------------------------------------------

Old:
----
  sglang-0.5.17.tar.gz

New:
----
  sglang-0.5.18.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-sglang.spec ++++++
--- /var/tmp/diff_new_pack.vACimy/_old  2026-08-25 13:20:23.119583474 +0200
+++ /var/tmp/diff_new_pack.vACimy/_new  2026-08-25 13:20:23.121583545 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-sglang
-Version:        0.5.17
+Version:        0.5.18
 Release:        0
 Summary:        Fast serving framework for large language models
 # Legal-Review-Notice: sgl-model-gateway and CUDA AOT kernels
@@ -27,21 +27,22 @@
 # under BSD-3-Clause, shipped as Python package data.
 # Rust PyO3 extensions (sglang-mm, sglang-grpc) are built from rust/
 # against vendor.tar.zst. Re-derived with cargo tree --offline -e normal
-# over those crates: MPL-2.0 from option-ext; Unicode-3.0 from
-# icu_*/unicode-ident; ISC from rustls-webpki/untrusted;
-# CDLA-Permissive-2.0 from webpki-roots. r-efi offers LGPL-2.1-or-later
-# but is UEFI-target-only and absent from the Linux graph.
-# vendor.tar.zst in the src.rpm satisfies MPL-2.0 §3.2.
-# sglang-server is not built: cargo_vendor update=true pulled
-# dynamo-protocols 5.3.1 which added ChatCompletionTokenLogprob.token_id
-# and FTBFS the 0.5.17 server crate (written for 5.1.0).
-License:        Apache-2.0 AND BSD-3-Clause AND CDLA-Permissive-2.0 AND ISC 
AND MIT AND MPL-2.0 AND Unicode-3.0
+# over those crates: BSD-2-Clause from numpy; BSD-3-Clause from
+# subtle/matchit; Unicode-3.0 from icu_*/unicode-ident; ISC from
+# rustls-webpki/untrusted; CDLA-Permissive-2.0 from webpki-roots.
+# option-ext (MPL-2.0) reaches only sglang-server, but its sources ride
+# along in vendor.tar.zst, which in the src.rpm satisfies MPL-2.0 §3.2.
+# r-efi offers LGPL-2.1-or-later but is UEFI-target-only and absent from
+# the Linux graph. sglang-server itself is not built: the CPU Python
+# runtime does not use it and it drags in the whole dynamo stack.
+License:        Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND 
CDLA-Permissive-2.0 AND ISC AND MIT AND MPL-2.0 AND Unicode-3.0
 URL:            https://github.com/sgl-project/sglang
 Source0:        
https://github.com/sgl-project/sglang/archive/refs/tags/v%{version}.tar.gz#/sglang-%{version}.tar.gz
 Source1:        vendor.tar.zst
 # PATCH-FIX-OPENSUSE sglang-relax-cpu-requirements.patch -- >= floors (not 
exact pins), drop unpackaged CPU-inappropriate deps, name the dist sglang (not 
sglang-cpu)
 Patch0:         sglang-relax-cpu-requirements.patch
 # PATCH-FIX-OPENSUSE sglang-cpu-triton-stub.patch -- install upstream's triton 
stub when triton is not present so import sglang works
+# The explicit importlib.machinery/importlib.util imports it also carries are 
upstream sgl-project/sglang PR 36215
 Patch1:         sglang-cpu-triton-stub.patch
 # PATCH-FIX-OPENSUSE sglang-cpu-rust-exts.patch -- build setuptools-rust PyO3 
extensions (mm, grpc) from the CPU pyproject
 Patch2:         sglang-cpu-rust-exts.patch
@@ -89,7 +90,6 @@
 BuildRequires:  %{python_module tiktoken}
 BuildRequires:  %{python_module timm >= 1.0.16}
 BuildRequires:  %{python_module torch >= 2.12.0}
-BuildRequires:  %{python_module torchao >= 0.17.0}
 BuildRequires:  %{python_module torchaudio >= 2.11.0}
 BuildRequires:  %{python_module torchvision >= 0.27.0}
 BuildRequires:  %{python_module tqdm}
@@ -153,7 +153,6 @@
 Requires:       python-tiktoken
 Requires:       python-timm >= 1.0.16
 Requires:       python-torch >= 2.12.0
-Requires:       python-torchao >= 0.17.0
 Requires:       python-torchaudio >= 2.11.0
 Requires:       python-torchvision >= 0.27.0
 Requires:       python-tqdm
@@ -179,15 +178,15 @@
 
 This is a CPU build: inference uses PyTorch's native CPU operators.
 The Rust PyO3 extensions (multimodal preprocess, native gRPC) are
-built. The embedded Rust server is not (dynamo-protocols 5.3.1
-API drift). CUDA kernels, sgl-kernel and flashinfer are not.
+built. The embedded Rust server is not. CUDA kernels, sgl-kernel
+and flashinfer are not.
 
 %prep
 %autosetup -p1 -n sglang-%{version}
 rm -f rust/rust-toolchain.toml
 # vendor.tar.zst holds rust/.cargo/config.toml, rust/vendor and a
 # regenerated rust/Cargo.lock (protoc-bin-vendored dropped).
-tar -xf %{SOURCE1} -C rust
+tar -xf %{SOURCE1}
 # setuptools-rust runs cargo from python/, which does not see rust/.cargo.
 # CARGO_HOME is the reliable remap (same pattern as python-tokenizers).
 mkdir -p .cargo-home
@@ -232,11 +231,9 @@
 rm -rf %{buildroot}%{$python_sitearch}/sglang/test \
        %{buildroot}%{$python_sitearch}/sglang/kernels/aot \
        %{buildroot}%{$python_sitearch}/sglang/multimodal_gen/test \
-       %{buildroot}%{$python_sitearch}/tools \
        %{buildroot}%{$python_sitelib}/sglang/test \
        %{buildroot}%{$python_sitelib}/sglang/kernels/aot \
-       %{buildroot}%{$python_sitelib}/sglang/multimodal_gen/test \
-       %{buildroot}%{$python_sitelib}/tools
+       %{buildroot}%{$python_sitelib}/sglang/multimodal_gen/test
 # CPU flavour never JIT-compiles these; shipping them scores
 # devel-file-in-non-devel-package (badness 50 each) and fails rpmlint.
 find %{buildroot} -type f \( \
@@ -259,7 +256,7 @@
 %check
 # Full tests need model weights, a GPU and network. Smoke-test the import
 # graph, the CLI, and that the Rust PyO3 extensions loaded.
-%python_expand 
PYTHONPATH=%{buildroot}%{$python_sitearch}:%{buildroot}%{$python_sitelib} 
$python -B -c "import sglang; print(sglang.__version__); import 
sglang.srt.multimodal._core; import sglang.srt.grpc._core"
+%python_expand 
PYTHONPATH=%{buildroot}%{$python_sitearch}:%{buildroot}%{$python_sitelib} 
$python -B -c "import sglang; print(sglang.__version__); import 
sglang.srt.rust_extensions._multimodal; import sglang.srt.rust_extensions._grpc"
 %python_expand 
PYTHONPATH=%{buildroot}%{$python_sitearch}:%{buildroot}%{$python_sitelib} 
%{buildroot}%{_bindir}/sglang-%{$python_bin_suffix} --help
 
 %pre

++++++ _service ++++++
--- /var/tmp/diff_new_pack.vACimy/_old  2026-08-25 13:20:23.194586122 +0200
+++ /var/tmp/diff_new_pack.vACimy/_new  2026-08-25 13:20:23.201586369 +0200
@@ -1,7 +1,10 @@
 <services>
+  <!-- Run this on a tree with sglang-grpc-system-protoc.patch applied: the
+       pristine rust/sglang-grpc/Cargo.toml pulls protoc-bin-vendored, whose
+       prebuilt protoc binaries must not end up in vendor.tar.zst. -->
   <service name="cargo_vendor" mode="manual">
     <param name="src">sglang-*.tar.gz</param>
-    <param name="custom-root">sglang-0.5.17/rust</param>
+    <param name="custom-root">rust</param>
     <param name="compression">zst</param>
     <param name="update">true</param>
   </service>

++++++ sglang-0.5.17.tar.gz -> sglang-0.5.18.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-sglang/sglang-0.5.17.tar.gz 
/work/SRC/openSUSE:Factory/.python-sglang.new.1258/sglang-0.5.18.tar.gz differ: 
char 13, line 1

++++++ sglang-cpu-rust-exts.patch ++++++
--- /var/tmp/diff_new_pack.vACimy/_old  2026-08-25 13:20:23.243587852 +0200
+++ /var/tmp/diff_new_pack.vACimy/_new  2026-08-25 13:20:23.246587958 +0200
@@ -8,8 +8,8 @@
  build-backend = "setuptools.build_meta"
  
  [project]
-@@ -159,3 +159,8 @@
- git_describe_command = ["python3", "python/tools/get_version_tag.py"]
+@@ -157,3 +157,8 @@
+ git_describe_command = ["python3", "scripts/release/get_version_tag.py"]
  # Allow editable installs even when .git metadata is not available.
  fallback_version = "0.0.0.dev0"
 +

++++++ sglang-cpu-triton-stub.patch ++++++
--- /var/tmp/diff_new_pack.vACimy/_old  2026-08-25 13:20:23.261588488 +0200
+++ /var/tmp/diff_new_pack.vACimy/_new  2026-08-25 13:20:23.264588594 +0200
@@ -1,43 +1,78 @@
---- a/python/sglang/__init__.py        2026-08-07 23:50:47.000000000 +0200
-+++ b/python/sglang/__init__.py        2026-08-21 22:24:26.691879593 +0200
-@@ -6,16 +6,23 @@
- import platform as _platform
- import sys as _sys
- 
-+# Distro CPU builds do not ship triton. Reuse upstream's macOS stub so
-+# `import sglang` (which pulls sglang.srt.utils.common) still succeeds.
-+try:
-+    import triton as _triton  # noqa: F401
-+
-+    del _triton
-+except ImportError:
-+    from sglang._triton_stub import install as _install_triton_stub
-+
-+    _install_triton_stub()
-+    del _install_triton_stub
-+
- if _sys.platform == "darwin" and _platform.machine() == "arm64":
-     try:
-         import torch as _torch
+--- a/python/sglang/__init__.py
++++ b/python/sglang/__init__.py
+@@ -1,8 +1,5 @@
+ """SGLang public API."""
  
-         if _torch.backends.mps.is_available():
--            from sglang._triton_stub import install as _install_triton_stub
+-import platform as _platform
+-import sys as _sys
 -
--            _install_triton_stub()
--            del _install_triton_stub
+ # sglang.srt.environ must run before the rest of this file's imports
+ # (hf_transformers_patches, lang.api, ...), which pull in torch and
+ # FlashInfer: those claim these cache dirs early, and the first value set is
+@@ -13,10 +10,11 @@
+ 
+ _redirect_third_party_caches()
+ 
+-if _sys.platform == "darwin" and _platform.machine() == "arm64":
+-    from sglang._platform_stubs import install_platform_stubs as 
_install_platform_stubs
++# Distro CPU builds do not ship triton either, so let the stub installer run
++# on every platform; it keeps the torch.mps patching macOS-only itself.
++from sglang._platform_stubs import install_platform_stubs as 
_install_platform_stubs
+ 
+-    _install_platform_stubs()
++_install_platform_stubs()
+ 
+ from sglang.srt.utils.hf_transformers_patches import apply_all as 
_apply_hf_patches
+ 
+--- a/python/sglang/_platform_stubs.py
++++ b/python/sglang/_platform_stubs.py
+@@ -10,7 +10,11 @@
+ from __future__ import annotations
+ 
+ import functools
+-import importlib
++# Explicit submodule imports: `import importlib` alone does not bind
++# importlib.machinery / importlib.util, and Python 3.14 no longer happens
++# to have them preloaded by the time this module runs.
++import importlib.machinery
++import importlib.util
+ import platform
+ import sys
+ import types
+@@ -378,16 +382,15 @@
+     if _platform_stubs_installed:
+         return
+ 
+-    if sys.platform != "darwin" or platform.machine() != "arm64":
+-        return
 -
-             from sglang._mps_stub import install as _install_mps_stub
+-    try:
+-        import torch
+-    except ImportError:
+-        return
++    patch_mps = sys.platform == "darwin" and platform.machine() == "arm64"
++    if patch_mps:
++        try:
++            import torch
++        except ImportError:
++            return
  
-             _install_mps_stub()
---- a/python/sglang/_triton_stub.py    2026-08-07 23:50:47.000000000 +0200
-+++ b/python/sglang/_triton_stub.py    2026-08-21 22:24:26.751886325 +0200
-@@ -41,7 +41,7 @@
-         self.__file__ = __file__
-         self._children: dict[str, object] = {}
-         # Set __spec__ so that importlib.util.find_spec() works on cached 
modules
--        import importlib
-+        import importlib.machinery
+-    if not torch.backends.mps.is_available():
+-        return
++        if not torch.backends.mps.is_available():
++            return
  
-         self.__spec__ = importlib.machinery.ModuleSpec(name, None, 
is_package=True)
+     if "triton" not in sys.modules and importlib.util.find_spec("triton") is 
None:
+         # Register the meta-path finder first so later ``import triton.X``
+@@ -454,6 +457,10 @@
+         compiler = _make_mock("triton.backends.compiler")
+         backends.compiler = compiler
  
++    if not patch_mps:
++        _platform_stubs_installed = True
++        return
++
+     mps = torch.mps
+     # Only patch attributes that are actually missing
+     for name, obj in [
 

++++++ sglang-relax-cpu-requirements.patch ++++++
--- /var/tmp/diff_new_pack.vACimy/_old  2026-08-25 13:20:23.285589335 +0200
+++ /var/tmp/diff_new_pack.vACimy/_new  2026-08-25 13:20:23.291589547 +0200
@@ -1,5 +1,5 @@
---- a/python/pyproject_cpu.toml        2026-08-07 23:50:47.000000000 +0200
-+++ b/python/pyproject_cpu.toml        2026-08-22 09:30:34.428466527 +0200
+--- a/python/pyproject_cpu.toml
++++ b/python/pyproject_cpu.toml
 @@ -4,7 +4,7 @@
  build-backend = "setuptools.build_meta"
  
@@ -9,7 +9,7 @@
  dynamic = ["version"]
  description = "SGLang is a fast serving framework for large language models 
and vision language models."
  readme = "README.md"
-@@ -19,25 +19,21 @@
+@@ -19,25 +19,22 @@
  dependencies = [
    "aiohttp",
    "anthropic>=0.20.0",
@@ -27,7 +27,7 @@
    "IPython",
    "llguidance>=1.7.6,<2.0.0",
    "mistral_common>=1.11.5",
--  "modelscope",
+   "modelscope",
    "msgspec",
 -  "ninja",
    "numpy",
@@ -38,7 +38,7 @@
    "orjson",
    "outlines",
    "packaging",
-@@ -45,32 +41,28 @@
+@@ -45,31 +42,27 @@
    "pillow",
    "prometheus-client>=0.20.0",
    "psutil",
@@ -59,12 +59,10 @@
    "tiktoken",
 -  "timm==1.0.16",
 -  "torch==2.12.0",
--  "torchao==0.17.0",
 -  "torchaudio==2.11.0",
 -  "torchvision==0.27.0",
 +  "timm>=1.0.16",
 +  "torch>=2.12.0",
-+  "torchao>=0.17.0",
 +  "torchaudio>=2.11.0",
 +  "torchvision>=0.27.0",
    "tqdm",
@@ -79,7 +77,7 @@
    "zstandard",
  ]
  
-@@ -127,6 +119,12 @@
+@@ -126,6 +119,12 @@
    "kernels/**/*"
  ]
  
@@ -92,26 +90,22 @@
  [tool.setuptools.packages.find]
  exclude = [
    "assets*",
-@@ -135,7 +133,10 @@
+@@ -134,6 +133,8 @@
    "dist*",
    "playground*",
    "scripts*",
 +  "sglang.kernels.aot*",
 +  "sglang.test*",
    "tests*",
-+  "tools*",
  ]
  
- [tool.wheel]
-@@ -146,7 +147,10 @@
+@@ -145,6 +146,8 @@
    "dist*",
    "playground*",
    "scripts*",
 +  "sglang/kernels/aot*",
 +  "sglang/test*",
    "tests*",
-+  "tools*",
  ]
  
- [tool.setuptools_scm]
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/python-sglang/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.python-sglang.new.1258/vendor.tar.zst differ: char 
7, line 1

Reply via email to