Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tvm for openSUSE:Factory checked in at 2026-10-26 09:58:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tvm (Old) and /work/SRC/openSUSE:Factory/.tvm.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tvm" Mon Oct 26 09:58:23 2026 rev:33 rq:1392262 version:0.27.0 Changes: -------- --- /work/SRC/openSUSE:Factory/tvm/tvm.changes 2026-06-17 16:19:52.878984703 +0200 +++ /work/SRC/openSUSE:Factory/.tvm.new.2252680/tvm.changes 2026-10-26 09:58:30.764962635 +0100 @@ -1,0 +2,28 @@ +Sat Oct 24 04:51:15 UTC 2026 - Martin Pluskal <[email protected]> + +- Update to 0.27.0 (covers 0.25.0 and 0.26.0): + * Relax, frontend and TIR improvements, including TIRx PTX dialect + overhaul, shared-KV attention with sliding windows and PEP 695 + symbolic variables + * Python bindings import tvm_ffi directly (shim removed); needs + apache-tvm-ffi >= 0.1.14.post0, bump tvm-ffi source to v0.1.14-post1 + * Route LLVM transcendentals through libm; Vulkan barrier fix +- Drop sources and patches no longer needed upstream: + * dmlc-core.tar.gz (dmlc-core no longer used) + * tvm-pr19786.patch (merged upstream) + * lib-finder-python-cmake.patch (libinfo refactored around + TVM_LIBRARY_PATH) + * tvm-disable-vulkan-test-check.patch (device probing reworked, + tests gated by TVM_TEST_TARGETS) +- Packaging: USE_MKLDNN renamed to USE_DNNL upstream; drop dead + ANTLR, OpenGL and ARM Compute Library options; require llvm-devel + >= 15 as upstream mandates +- Disable oneDNN codegen (USE_DNNL=OFF): TVM targets the oneDNN 2.x + API, incompatible with Factory's oneDNN 3.x +- Add Requires on python-apache-tvm-ffi, imported directly since + the 0.26.0 shim removal +- Add tvm-llvm-isystem-usr-include.patch: filter /usr/include out + of LLVM_INCLUDE_DIRS (Factory LLVM headers live there; as + -isystem it breaks GCC's #include_next) + +------------------------------------------------------------------- Old: ---- dmlc-core.tar.gz lib-finder-python-cmake.patch tvm-0.24.0.tar.gz tvm-disable-vulkan-test-check.patch tvm-pr19786.patch New: ---- tvm-0.27.0.tar.gz tvm-llvm-isystem-usr-include.patch ----------(Old B)---------- Old: * tvm-pr19786.patch (merged upstream) * lib-finder-python-cmake.patch (libinfo refactored around TVM_LIBRARY_PATH) Old: TVM_LIBRARY_PATH) * tvm-disable-vulkan-test-check.patch (device probing reworked, tests gated by TVM_TEST_TARGETS) Old: * dmlc-core.tar.gz (dmlc-core no longer used) * tvm-pr19786.patch (merged upstream) * lib-finder-python-cmake.patch (libinfo refactored around ----------(Old E)---------- ----------(New B)---------- New: the 0.26.0 shim removal - Add tvm-llvm-isystem-usr-include.patch: filter /usr/include out of LLVM_INCLUDE_DIRS (Factory LLVM headers live there; as ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tvm.spec ++++++ --- /var/tmp/diff_new_pack.lu89Os/_old 2026-10-26 09:58:31.761004422 +0100 +++ /var/tmp/diff_new_pack.lu89Os/_new 2026-10-26 09:58:31.764004547 +0100 @@ -16,45 +16,29 @@ # -%bcond_with system_dmlc -%define dmlc_version 3031e4a %define libbacktrace_version 08f7c7e - %{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 -%ifarch aarch64 x86_64 ppc64le -%bcond_without onednn -%else +# regular cmake builddir conflicts with the python singlespec +%global __builddir build_cmake +# TVM's DNNL integration targets the oneDNN 2.x API and fails against +# Factory's oneDNN 3.x (upstream untouched since 2022, no v3 port) %bcond_with onednn -%endif # Disable pytest until python3-xgboost is available %bcond_with pytest -%ifarch aarch64 -%bcond_without arm_compute_lib -%else -%bcond_with arm_compute_lib -%endif %bcond_without cpptest -# regular cmake builddir conflicts with the python singlespec -%global __builddir build_cmake Name: tvm -Version: 0.24.0 +Version: 0.27.0 Release: 0 Summary: An end-to-end Deep Learning Compiler Stack License: Apache-2.0 URL: https://tvm.apache.org/ Source: https://github.com/apache/tvm/archive/refs/tags/v%{version}.tar.gz#/tvm-%{version}.tar.gz -Source1: https://github.com/apache/tvm-ffi/archive/refs/tags/v0.1.11.tar.gz#/tvm-ffi.tar.gz -# License2: MIT -Source2: https://github.com/dmlc/dmlc-core/archive/%{dmlc_version}.tar.gz#/dmlc-core.tar.gz -# License3: BSD-3-Clause -Source3: https://github.com/tlc-pack/libbacktrace/archive/%{libbacktrace_version}.tar.gz#/libbacktrace.tar.gz -# PATCH-FIX-OPENSUSE lib-finder-python-cmake.patch -- custom cmake path -Patch1: lib-finder-python-cmake.patch -# PATCH-FIX-OPENSUSE tvm-disable-vulkan-test-check.patch -- Cannot test in OBS despite enabled in library -Patch2: tvm-disable-vulkan-test-check.patch -# PATCH-FIX-UPSTREAM - https://github.com/apache/tvm/pull/19786 -Patch3: tvm-pr19786.patch +Source1: https://github.com/apache/tvm-ffi/archive/refs/tags/v0.1.14-post1.tar.gz#/tvm-ffi.tar.gz +# License2: BSD-3-Clause +Source2: https://github.com/tlc-pack/libbacktrace/archive/%{libbacktrace_version}.tar.gz#/libbacktrace.tar.gz +# PATCH-FIX-OPENSUSE tvm-llvm-isystem-usr-include.patch -- Factory LLVM ships headers directly in /usr/include; as -isystem it breaks GCC #include_next +Patch0: tvm-llvm-isystem-usr-include.patch BuildRequires: %{python_module Cython} BuildRequires: %{python_module attrs} BuildRequires: %{python_module cloudpickle} @@ -65,52 +49,44 @@ BuildRequires: %{python_module pytest} BuildRequires: %{python_module scikit-build-core} BuildRequires: %{python_module scipy} +BuildRequires: %{python_module setuptools_scm} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module synr} BuildRequires: %{python_module tornado} -%if %{with pytest} -BuildRequires: %{python_module typing_extensions} -%endif -%if %{with arm_compute_lib} -BuildRequires: ComputeLibrary-devel -%endif -BuildRequires: antlr4-java BuildRequires: cmake BuildRequires: dlpack-devel >= 1.1 -%if %{with system_dmlc} -BuildRequires: dmlc-core-devel -%endif BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: git -%if %{with cpptest} -BuildRequires: gmock -BuildRequires: gtest -%endif -BuildRequires: llvm-devel +BuildRequires: llvm-devel >= 15 BuildRequires: memory-constraints BuildRequires: openblas-devel BuildRequires: opencl-headers BuildRequires: pkgconfig -BuildRequires: rang-devel BuildRequires: spirv-headers BuildRequires: spirv-tools BuildRequires: spirv-tools-devel BuildRequires: vulkan-devel BuildRequires: pkgconfig(OpenCL) -BuildRequires: pkgconfig(gl) -BuildRequires: pkgconfig(glfw3) +Requires: python-apache-tvm-ffi >= 0.1.14.post0 Requires: python-attrs Requires: python-cloudpickle Requires: python-decorator Requires: python-numpy Requires: python-psutil Requires: python-synr +# Tests are failing on 32-bit +ExcludeArch: %{arm} %{ix86} +%if %{with pytest} +BuildRequires: %{python_module typing_extensions} +%endif +%if %{with cpptest} +BuildRequires: gmock +BuildRequires: gtest +%endif %if %{with onednn} BuildRequires: onednn-devel %endif -# Tests are failing on 32-bit -ExcludeArch: %{arm} %{ix86} %python_subpackages %description @@ -155,10 +131,7 @@ pushd tvm-ffi rm -rf 3rdparty && ln -s ../../3rdparty popd -%if %{without system_dmlc} -tar xf %{SOURCE2} && rmdir dmlc-core && mv dmlc-core-* dmlc-core -%endif -tar xf %{SOURCE3} && mv libbacktrace-* libbacktrace +tar xf %{SOURCE2} && mv libbacktrace-* libbacktrace popd # Workaround - https://discuss.tvm.ai/t/build-fails-on-tvm-0-6-0-0-6-1-with-gcc10-and-gcc7/7462/5?u=ggardet @@ -180,27 +153,14 @@ # USE_NNPACK # USE_ROCBLAS USE_ROCM %cmake \ -%if %{with arm_compute_lib} - -DUSE_ARM_COMPUTE_LIB_GRAPH_RUNTIME=ON \ - -DUSE_ARM_COMPUTE_LIB=ON \ -%endif -%if %{with system_dmlc} - -DDMLC_PATH="%{_includedir}/dmlc" \ -%else - -DDMLC_PATH="$(pwd)/../3rdparty/dmlc-core/include" \ -%endif - -DDLPACK_PATH="%{_includedir}/dlpack" \ - -DRANG_PATH="%{_includedir}/rang" \ - -DUSE_GRAPH_RUNTIME=ON \ -DUSE_LLVM=ON \ -DUSE_BLAS="openblas" \ %if %{with onednn} - -DUSE_MKLDNN=ON \ + -DUSE_DNNL=ON \ %else - -DUSE_MKLDNN=OFF \ + -DUSE_DNNL=OFF \ %endif -DUSE_OPENCL=ON \ - -DUSE_OPENGL=ON \ -DUSE_OPENMP=ON \ -DUSE_RANDOM=ON \ -DUSE_RPC=ON \ @@ -208,11 +168,12 @@ -DUSE_SORT=ON \ -DUSE_THREADS=ON \ -DUSE_VULKAN=ON \ - -DUSE_ANTLR="/usr/share/java/antlr4/antlr4-runtime.jar" \ -DINSTALL_DEV=ON %cmake_build cd .. export TVM_LIBRARY_PATH="$(pwd)/%{__builddir}" +# version comes from the git tag via setuptools_scm; the tarball has no .git +export SETUPTOOLS_SCM_PRETEND_VERSION="%{version}" # Fix rpm runtime dependency rpmlint error replace the shebang in all the scripts with %%{_bindir}/python3 find . -name "*.py" -exec sed -i 's|#!%{_bindir}/env python|#!%{_bindir}/python3|' {} ";" %pyproject_wheel @@ -227,9 +188,6 @@ cp build_cmake/lib/libtvm_ffi.so %{buildroot}%{_libdir} # Remove src,include,3rdparty dirs %python_expand rm -rf %{buildroot}/%{$python_sitearch}/tvm/{src,include,3rdparty}/ -%if %{without system_dmlc} -rm -rf %{buildroot}%{_includedir}/dmlc -%endif # Regenerate tvmc which is not provided anymore # https://tvm.apache.org/docs/v0.8.0/tutorial/tvmc_command_line_driver.html#using-tvmc mkdir -p %{buildroot}%{_bindir} @@ -323,5 +281,5 @@ %files %{python_files} %{python_sitearch}/tvm -%{python_sitearch}/tvm-*.dist-info/ +%{python_sitearch}/apache_tvm-*.dist-info/ ++++++ tvm-0.24.0.tar.gz -> tvm-0.27.0.tar.gz ++++++ /work/SRC/openSUSE:Factory/tvm/tvm-0.24.0.tar.gz /work/SRC/openSUSE:Factory/.tvm.new.2252680/tvm-0.27.0.tar.gz differ: char 12, line 1 ++++++ tvm-ffi.tar.gz ++++++ ++++ 78332 lines of diff (skipped) ++++++ tvm-llvm-isystem-usr-include.patch ++++++ From: Martin Pluskal <[email protected]> Subject: [PATCH] cmake: drop /usr/include from LLVM_INCLUDE_DIRS LLVM distributions that install their headers directly into /usr/include (e.g. openSUSE Factory, -- Found LLVM_INCLUDE_DIRS=/usr/include) end up passing it to the compiler as -isystem via include_directories(SYSTEM ...) and TVM_LLVM_INCLUDE_FLAGS below. An explicitly listed -isystem directory takes the compiler default's place in the search order, which breaks GCC's #include_next lookup (c++/cstdlib -> stdlib.h: No such file or directory) for every C++ translation unit that includes a C++ standard header. /usr/include is on the compiler's default search path anyway, so filter it out; LLVM headers in /usr/include/llvm* keep resolving as before. --- a/cmake/modules/LLVM.cmake +++ b/cmake/modules/LLVM.cmake @@ -32,6 +32,12 @@ if (${TVM_LLVM_VERSION} LESS 150) message(FATAL_ERROR "LLVM version 15.0 or greater is required.") endif() + # LLVM installations with headers directly in /usr/include list it in + # LLVM_INCLUDE_DIRS. Passing it via -isystem breaks GCC's #include_next + # (e.g. cstdlib -> stdlib.h not found), and it is searched by default + # anyway, so drop it here. LLVM headers under /usr/include/llvm* still + # resolve through the default search path. + list(REMOVE_ITEM LLVM_INCLUDE_DIRS "/usr/include") include_directories(SYSTEM ${LLVM_INCLUDE_DIRS}) add_definitions(${LLVM_DEFINITIONS}) add_library(tvm_llvm_header INTERFACE)
