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
