Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-vllm for openSUSE:Factory 
checked in at 2026-08-27 18:51:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-vllm (Old)
 and      /work/SRC/openSUSE:Factory/.python-vllm.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-vllm"

Thu Aug 27 18:51:42 2026 rev:8 rq:1373880 version:0.28.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-vllm/python-vllm.changes  2026-08-12 
16:13:39.449386451 +0200
+++ /work/SRC/openSUSE:Factory/.python-vllm.new.1265/python-vllm.changes        
2026-08-27 18:55:10.311530831 +0200
@@ -1,0 +2,58 @@
+Wed Aug 26 18:04:34 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to version 0.28.0:
+  * Kimi-K3 performance push across the stack: decode context
+    parallelism, fused FlashKDA decode and prefill kernels, GEMM-RS
+    for sequence parallelism and optional shared-expert sharding
+  * DeepSeek-V4 sparse MLA now works end to end for plain decode,
+    MTP and DSpark speculative decoding
+  * Model Runner V2 matures: encode/prefill/decode disaggregation,
+    weight offloading, encoder CUDA graphs and attention-free models
+  * CPU backend gains an MLA backend so DeepSeek-V2/V3 run on CPU,
+    and unquantized MoE moves to the modular-kernel expert structure
+  * New defaults: max_num_batched_tokens raised from 8192 to 16384,
+    and prefix caching enabled by default for Mamba models
+  * Breaking changes: bitsandbytes support moved to an out-of-tree
+    plugin, and the deprecated calculate_kv_scales runtime KV scale
+    calculation and override_attention_dtype were removed
+  * Security hardening: an audio decode duration limit in
+    NanoNemotronVL, and _load_ov2_processor guarded with
+    resolve_trust_remote_code
+  * Many further model, quantization, KV-offloading and large-scale
+    serving changes -- see upstream's release notes for the full list
+- Convert the remaining exact "=" version requirements into ">="
+  floors at the version upstream actually asks for.  An exact RPM
+  pin couples two independently released packages, so every update
+  of either leaves the other uninstallable, and it fails only at
+  install time where no build gate can see it:
+  * python-torch = 2.12.0 becomes >= 2.12.0, as do the matching
+    torch and torch-devel BuildRequires.  The default flavour is
+    pure Python; the cpu flavour's link against libtorch is already
+    carried by the automatic libtorch.so, libtorch_cpu.so and
+    libc10.so dependencies rpm generates from the extension, which
+    is also what makes OBS rebuild this package when torch moves
+  * python-depyf = 0.20.0 becomes >= 0.20.0
+  * python-lm-format-enforcer = 0.11.3 becomes >= 0.11.3
+  * python-outlines_core = 0.2.14 becomes >= 0.2.14, whose on-disk
+    index cache is keyed on the installed outlines_core version and
+    cleared when it changes, so it handles drift by design
+  * vllm-relax-cpu-requirements.patch relaxes the same pins in the
+    wheel metadata, and now covers the compressed-tensors and depyf
+    lines too, so the RPM dependencies and the installed dist-info
+    agree
+- Add a python-huggingface-hub >= 1.27.0 requirement, a new upstream
+  floor in this release
+- Follow upstream's cmake/cpu_extension.cmake to oneDNN 3.13 on
+  x86_64; the aarch64 oneDNN commit pin and Arm Compute Library
+  52.6.0 are unchanged:
+  * Add oneDNN-3.13.tar.gz
+  * Drop oneDNN-3.10.tar.gz
+- Switch from update-alternatives to libalternatives, the Factory
+  default for a generic binary name: /usr/bin/vllm is now a plain
+  symlink to alts plus a declarative config, with no install-time
+  scriptlet.  An already installed update-alternatives symlink is
+  migrated on upgrade
+- Rebase vllm-relax-cpu-requirements.patch and
+  vllm-cpu-disable-rust-frontend.patch onto 0.28.0
+
+-------------------------------------------------------------------

Old:
----
  oneDNN-3.10.tar.gz
  vllm-0.27.1.tar.gz

New:
----
  oneDNN-3.13.tar.gz
  vllm-0.28.0.tar.gz

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

Other differences:
------------------
++++++ python-vllm.spec ++++++
--- /var/tmp/diff_new_pack.w7I4Yh/_old  2026-08-27 18:55:12.954623108 +0200
+++ /var/tmp/diff_new_pack.w7I4Yh/_new  2026-08-27 18:55:12.956623178 +0200
@@ -44,10 +44,11 @@
 # with any vllm update, they are version-locked to the kernel sources.
 %define         onednn_aarch64_commit 9c5be1cc59e368aebf0909e6cf20f981ea61462a
 %define         onednn_aarch64_commit_short 9c5be1cc
-%define         onednn_x86_version 3.10
+%define         onednn_x86_version 3.13
 %define         acl_version 52.6.0
+%bcond_without  libalternatives
 Name:           python-vllm%{psuffix}
-Version:        0.27.1
+Version:        0.28.0
 Release:        0
 Summary:        A high-throughput and memory-efficient inference and serving 
engine for LLMs
 License:        Apache-2.0
@@ -82,12 +83,23 @@
 BuildRequires:  %{python_module setuptools-rust >= 1.9.0}
 BuildRequires:  %{python_module setuptools-scm >= 8.0}
 # setup.py imports torch at module top to detect the target device.
-BuildRequires:  %{python_module torch = 2.12.0}
+BuildRequires:  %{python_module torch >= 2.12.0}
 BuildRequires:  %{python_module wheel}
+BuildRequires:  alts
 BuildRequires:  fdupes
 # import torch dlopens libopenblas.so.0 at build time.
 BuildRequires:  libopenblas_pthreads0
 BuildRequires:  python-rpm-macros
+Requires:       alts
+# Several of upstream's requirements/*.txt entries are exact "== X.Y.Z" pins.
+# Those describe upstream's own pinned developer/CI environment, not a proven
+# incompatibility, and an exact RPM pin is actively harmful: it couples two
+# independently released packages, so every update of either leaves the other
+# uninstallable.  Nothing catches that -- the build still succeeds, because the
+# breakage only happens at install time -- so it surfaces as a broken package 
in
+# the target project.  Carry floors at the version upstream actually asks for
+# instead; vllm-relax-cpu-requirements.patch relaxes the same pins in the wheel
+# metadata so the RPM dependencies and the dist-info agree.
 Requires:       python-Pillow
 Requires:       python-PyYAML
 Requires:       python-aiohttp >= 3.13.3
@@ -101,16 +113,20 @@
 # compressed_tensors exists unchanged in both 0.17.1 and 0.18.0 (the only delta
 # on that surface is an added TransformConfig.merge()), so carry a floor.
 Requires:       python-compressed-tensors >= 0.17.1
-Requires:       python-depyf = 0.20.0
+# Optional torch.compile debugging helper, imported lazily inside
+# vllm/compilation only when compilation debug dumps are enabled.
+Requires:       python-depyf >= 0.20.0
 Requires:       python-einops
 Requires:       python-fastapi >= 0.133.0
 Requires:       python-filelock >= 3.16.1
-Requires:       python-huggingface-hub
+Requires:       python-huggingface-hub >= 1.27.0
 Requires:       python-ijson
 Requires:       python-jsonschema >= 4.23.0
 Requires:       python-lark >= 1.2.2
 Requires:       python-llguidance >= 1.7.0
-Requires:       python-lm-format-enforcer = 0.11.3
+# One of the optional structured-output backends, LazyLoader-imported only when
+# a request selects it.
+Requires:       python-lm-format-enforcer >= 0.11.3
 Requires:       python-mcp
 Requires:       python-mistral-common >= 1.11.6
 Requires:       python-model-hosting-container-standards >= 0.1.14
@@ -124,7 +140,10 @@
 Requires:       python-opentelemetry-exporter-otlp >= 1.27.0
 Requires:       python-opentelemetry-sdk >= 1.27.0
 Requires:       python-opentelemetry-semantic-conventions-ai >= 0.4.1
-Requires:       python-outlines_core = 0.2.14
+# Optional structured-output backend, also LazyLoader-imported.  Its on-disk
+# index cache is keyed on importlib.metadata.version("outlines_core") and is
+# cleared whenever that changes, so the code handles version drift by design.
+Requires:       python-outlines_core >= 0.2.14
 Requires:       python-partial-json-parser
 Requires:       python-prometheus-client >= 0.18.0
 Requires:       python-prometheus-fastapi-instrumentator >= 8.0.0
@@ -145,20 +164,24 @@
 Requires:       python-starlette >= 1.0.1
 Requires:       python-tiktoken >= 0.6.0
 Requires:       python-tokenizers >= 0.21.1
-Requires:       python-torch = 2.12.0
+# The default flavour is pure Python and only uses torch's Python API.  The cpu
+# flavour additionally links the compiled kernels against libtorch, and that
+# coupling is already expressed by the automatic libtorch.so / libtorch_cpu.so 
/
+# libc10.so dependencies rpm generates from the extension -- which is also what
+# makes OBS rebuild this package when torch moves.  An exact pin adds nothing
+# there and only makes the package uninstallable until it is bumped by hand.
+Requires:       python-torch >= 2.12.0
 Requires:       python-tqdm
 Requires:       python-transformers >= 5.5.3
 Requires:       python-typing_extensions >= 4.10
 Requires:       python-watchfiles
 Requires:       python-xgrammar >= 0.2.1
-Requires(post): update-alternatives
-Requires(postun): update-alternatives
 # Limited to the arches python-torch is built for.
 ExclusiveArch:  x86_64 aarch64
 %if %{with cpu_kernels}
 # The compiled kernels need a C++ toolchain and torch's CMake package config,
 # which ships in the -devel subpackage (find_package(Torch)).
-BuildRequires:  %{python_module torch-devel = 2.12.0}
+BuildRequires:  %{python_module torch-devel >= 2.12.0}
 BuildRequires:  cmake >= 3.26
 BuildRequires:  gcc-c++
 BuildRequires:  libnuma-devel
@@ -209,7 +232,7 @@
 %endif
 %endif
 
-# Use the torch already installed in the build root (2.12.0) instead of the
+# Build against whatever torch the build root provides instead of upstream's
 # exact 2.13.0 pin, via vLLM's own helper.  Strips torch/torchvision/torchaudio
 # pins from requirements/*.txt and pyproject.toml.
 %python_expand $python use_existing_torch.py --prefix
@@ -270,6 +293,7 @@
 %fdupes $sd
 }
 %python_clone -a %{buildroot}%{_bindir}/vllm
+%python_group_libalternatives vllm
 
 %check
 export VLLM_TARGET_DEVICE=%{vllm_target_device}
@@ -277,11 +301,9 @@
 # Full model/serving tests need model weights and are out of scope here.
 %python_expand $python -c "import vllm; print(vllm.__version__)"
 
-%post
-%python_install_alternative vllm
-
-%postun
-%python_uninstall_alternative vllm
+%pre
+# Migrate an install that still carries the old update-alternatives symlink.
+%python_libalternatives_reset_alternative vllm
 
 %files %{python_files}
 %doc README.md

++++++ oneDNN-3.10.tar.gz -> oneDNN-3.13.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-vllm/oneDNN-3.10.tar.gz 
/work/SRC/openSUSE:Factory/.python-vllm.new.1265/oneDNN-3.13.tar.gz differ: 
char 16, line 1

++++++ vllm-0.27.1.tar.gz -> vllm-0.28.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-vllm/vllm-0.27.1.tar.gz 
/work/SRC/openSUSE:Factory/.python-vllm.new.1265/vllm-0.28.0.tar.gz differ: 
char 5, line 1

++++++ vllm-cpu-disable-rust-frontend.patch ++++++
--- /var/tmp/diff_new_pack.w7I4Yh/_old  2026-08-27 18:55:13.051626494 +0200
+++ /var/tmp/diff_new_pack.w7I4Yh/_new  2026-08-27 18:55:13.057626704 +0200
@@ -1,6 +1,6 @@
 --- a/setup.py
 +++ b/setup.py
-@@ -1257,9 +1257,16 @@
+@@ -1495,9 +1495,16 @@
  
  # Rust artifacts, built via setuptools-rust and installed into the package
  # directory alongside the Python modules.

++++++ vllm-relax-cpu-requirements.patch ++++++
--- /var/tmp/diff_new_pack.w7I4Yh/_old  2026-08-27 18:55:13.081627542 +0200
+++ /var/tmp/diff_new_pack.w7I4Yh/_new  2026-08-27 18:55:13.085627682 +0200
@@ -32,13 +32,29 @@
  py-cpuinfo; platform_machine == "aarch64"
 --- a/requirements/common.txt
 +++ b/requirements/common.txt
-@@ -23,7 +23,7 @@
- lm-format-enforcer == 0.11.3
+@@ -21,10 +21,10 @@
+ pillow  # Required for image processing
+ prometheus-fastapi-instrumentator >= 8.0.0 # v8 unblocks starlette >= 1.0
+ tiktoken >= 0.6.0  # Required for DBRX tokenizer
+-lm-format-enforcer == 0.11.3
++lm-format-enforcer >= 0.11.3
  llguidance >= 1.7.0, < 1.8.0; platform_machine == "x86_64" or 
platform_machine == "arm64" or platform_machine == "aarch64" or 
platform_machine == "ppc64le" or platform_machine == "s390x"
- outlines_core == 0.2.14
+-outlines_core == 0.2.14
 -lark == 1.2.2
++outlines_core >= 0.2.14
 +lark >= 1.2.2
  xgrammar >= 0.2.1, < 1.0.0; platform_machine == "x86_64" or platform_machine 
== "aarch64" or platform_machine == "arm64" or platform_machine == "s390x" or 
platform_machine == "ppc64le"
  typing_extensions >= 4.10
  filelock >= 3.16.1 # need to contain 
https://github.com/tox-dev/filelock/pull/317
+@@ -38,8 +38,8 @@
+ six>=1.16.0; python_version > '3.11' # transitive dependency of pandas that 
needs to be the latest version for python 3.12
+ setuptools>=77.0.3,<81.0.0; python_version > '3.11' # Setuptools is used by 
triton, we need to ensure a modern version is installed for 3.12+ so that it 
does not try to import distutils, which was removed in 3.12
+ einops # Required for Qwen2-VL.
+-compressed-tensors == 0.17.0 # required for compressed-tensors
+-depyf==0.20.0 # required for profiling and debugging with compilation config
++compressed-tensors >= 0.17.1 # required for compressed-tensors
++depyf>=0.20.0 # required for profiling and debugging with compilation config
+ cloudpickle # allows pickling lambda functions in 
model_executor/models/registry.py
+ watchfiles # required for http server to monitor the updates of TLS files
+ python-json-logger # Used by logging as per 
examples/features/logging_configuration.md
 

Reply via email to