From 96073c780689ce2d41c19daa83b2511ba90fabbbdde86a6eabe6a43e5cff7928 Mon Sep 17 00:00:00 2001 From: Ben Greiner Date: Sat, 3 Jan 2026 14:52:12 +0100 Subject: [PATCH] Update to 2022.3.0 * [Preview] Introduced API for setting dynamic task dependencies in task_group. This allows successor tasks to execute only after all their predecessors have completed. * Extended task_arena with API support for enqueuing functions into a task_group and waiting for the task_group to complete. * Introduced API for setting and getting the assertion handler. This allows applications to set their own assertion handling functions. Update cf-prot.patch, partially fixed upstream Add tbb-python-setuptools.patch * gh#uxlfoundation/oneTBB#1941 * replace setup.py direct call --- cf-prot.patch | 10 +-- tbb-2022.2.0.tar.gz | 3 - tbb-2022.3.0.tar.gz | 3 + tbb-python-setuptools.patch | 162 ++++++++++++++++++++++++++++++++++++ tbb.changes | 17 ++++ tbb.spec | 15 ++-- 6 files changed, 193 insertions(+), 17 deletions(-) delete mode 100644 tbb-2022.2.0.tar.gz create mode 100644 tbb-2022.3.0.tar.gz create mode 100644 tbb-python-setuptools.patch diff --git a/cf-prot.patch b/cf-prot.patch index ae25469..2804634 100644 --- a/cf-prot.patch +++ b/cf-prot.patch @@ -8,15 +8,15 @@ References: https://github.com/uxlfoundation/oneTBB/issues/1783 cmake/compilers/GNU.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: oneTBB-2022.2.0/cmake/compilers/GNU.cmake +Index: oneTBB-2022.3.0/cmake/compilers/GNU.cmake =================================================================== ---- oneTBB-2022.2.0.orig/cmake/compilers/GNU.cmake -+++ oneTBB-2022.2.0/cmake/compilers/GNU.cmake -@@ -107,7 +107,7 @@ endif () +--- oneTBB-2022.3.0.orig/cmake/compilers/GNU.cmake ++++ oneTBB-2022.3.0/cmake/compilers/GNU.cmake +@@ -123,7 +123,7 @@ endif () set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -fno-strict-overflow -fno-delete-null-pointer-checks -fwrapv) set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong ) --if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" AND NOT EMSCRIPTEN) +-if (CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)" AND NOT EMSCRIPTEN) +if (FALSE) set(TBB_LIB_COMPILE_FLAGS ${TBB_LIB_COMPILE_FLAGS} $<$>:-fcf-protection=full>) endif () diff --git a/tbb-2022.2.0.tar.gz b/tbb-2022.2.0.tar.gz deleted file mode 100644 index f40f7c5..0000000 --- a/tbb-2022.2.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0f78001c8c8edb4bddc3d4c5ee7428d56ae313254158ad1eec49eced57f6a5b -size 4244148 diff --git a/tbb-2022.3.0.tar.gz b/tbb-2022.3.0.tar.gz new file mode 100644 index 0000000..85cd9fe --- /dev/null +++ b/tbb-2022.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01598a46c1162c27253a0de0236f520fd8ee8166e9ebb84a4243574f88e6e50a +size 6836514 diff --git a/tbb-python-setuptools.patch b/tbb-python-setuptools.patch new file mode 100644 index 0000000..423cef7 --- /dev/null +++ b/tbb-python-setuptools.patch @@ -0,0 +1,162 @@ +From c654cdc5916cfddbffeb056d9e80809e5ba17c33 Mon Sep 17 00:00:00 2001 +From: Ben Greiner +Date: Sat, 3 Jan 2026 14:24:05 +0100 +Subject: [PATCH] Replace 'setup.py build -I* -L*' usage with pip and + environment variables + +--- + python/CMakeLists.txt | 18 +++++++++++------- + python/README.md | 5 ++--- + python/pyproject.toml | 3 +++ + python/setup.py | 30 +++++++++++++++++++++++------- + 4 files changed, 39 insertions(+), 17 deletions(-) + create mode 100644 python/pyproject.toml + +diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt +index 748921a592..e507b97c13 100644 +--- a/python/CMakeLists.txt ++++ b/python/CMakeLists.txt +@@ -1,4 +1,5 @@ +-# Copyright (c) 2020-2023 Intel Corporation ++# Copyright (c) 2020-2025 Intel Corporation ++# Copyright (c) 2026 UXL Foundation Contributors + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. +@@ -27,7 +28,7 @@ add_custom_target( + get_target_property(TBB_INCLUDES tbb INTERFACE_INCLUDE_DIRECTORIES) + foreach(dir ${TBB_INCLUDES}) + if (${dir} MATCHES " +- install --prefix build -f ++ ${CMAKE_COMMAND} -E env ++ TBB_INCLUDEDIRS="${TBB4PY_INCLUDE_STRING}" ++ TBB_LIBDIRS=$ ++ ${PYTHON_EXECUTABLE} -m pip install ++ --no-build-isolation ++ --prefix build ++ ./${PYTHON_BUILD_WORK_DIR} + COMMENT "Build and install to work directory the oneTBB Python module" + ) + +@@ -50,7 +54,7 @@ add_test(NAME python_test + -DPYTHON_MODULE_BUILD_PATH=${PYTHON_BUILD_WORK_DIR}/build + -P ${PROJECT_SOURCE_DIR}/cmake/python/test_launcher.cmake) + +-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_BUILD_WORK_DIR}/build/ ++install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build/ + DESTINATION . + COMPONENT tbb4py) + +diff --git a/python/README.md b/python/README.md +index e7e3318d30..30afe9a364 100644 +--- a/python/README.md ++++ b/python/README.md +@@ -20,7 +20,7 @@ For more information and examples, please refer to [forum discussion](https://co + - **tbb** - The folder contains Python module sources. + + ## Files +- - **setup.py** - Standard Python setup script. ++ - **setup.py** - Standard Python setuptools script. Calling it directly is deprecated. + - **TBB.py** - Alternative entry point for Python module. + + ## CMake predefined targets +@@ -33,8 +33,7 @@ For more information and examples, please refer to [forum discussion](https://co + - `pydoc tbb` - Read built-in documentation for Python interfaces. + - `python3 -m tbb your_script.py` - Run your_script.py in context of `with tbb.Monkey():` when oneTBB is enabled. By default only multi-threading will be covered. + - `python3 -m tbb --ipc your_script.py` - Run your_script.py in context of `with tbb.Monkey():` when oneTBB enabled in both multi-threading and multi-processing modes. +- - `python3 setup.py build -b -f check` - Build oneTBB module for Python. (Prerequisites: built and sourced oneTBB and IRML libraries) +- - `python3 setup.py build -b build_ext -I -L install -f ` - Build and install oneTBB module for Python. (Prerequisites: built oneTBB and IRML libraries) ++ - `TBB_INCLUDEDIRS= TBB_LIBDIRS= python3 -m pip install --no-build-isolation --prefix ` - Build and install oneTBB module for Python. (Prerequisites: built oneTBB and IRML libraries) + - `python3 -m TBB test` - run test for oneTBB module for Python. + - `python3 -m tbb test` - run test for oneTBB module for Python. + +diff --git a/python/pyproject.toml b/python/pyproject.toml +new file mode 100644 +index 0000000000..09977b5b8e +--- /dev/null ++++ b/python/pyproject.toml +@@ -0,0 +1,3 @@ ++[build-system] ++requires = ["setuptools>=61"] ++build-backend = "setuptools.build_meta" +diff --git a/python/setup.py b/python/setup.py +index edf8580ff8..779660a594 100644 +--- a/python/setup.py ++++ b/python/setup.py +@@ -1,4 +1,5 @@ +-# Copyright (c) 2016-2023 Intel Corporation ++# Copyright (c) 2016-2025 Intel Corporation ++# Copyright (c) 2026 UXL Foundation Contributors + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. +@@ -17,8 +18,12 @@ + import platform + import os + +-from distutils.core import * +-from distutils.command.build import build ++try: ++ from setuptools import setup, Extension ++ from setuptools.command.build import build ++except ImportError: ++ from distutils.core import setup, Extension ++ from distutils.command.build import build + + rundir = os.getcwd() + os.chdir(os.path.abspath(os.path.dirname(__file__))) +@@ -57,19 +62,31 @@ + compile_flags = ['-std=c++11', '-Wno-unused-variable'] + tbb_lib_name = 'tbb' + ++tbb_includedirs = os.getenv("TBB_INCLUDEDIRS", "") ++tbb_libdirs = os.getenv("TBB_LIBDIRS", "") ++ ++if use_compiler_tbb and (tbb_includedirs or tbb_libdirs): ++ print("Warning: Ignoring TBB_INCLUDEDIRS=%s and TBB_LIBDIRS=%s " ++ "because using oneTBB from Intel (R) C++ Compiler is set" ++ % (tbb_includedirs, tbb_libdirs)) ++ + _tbb = Extension("tbb._api", ["tbb/api.i"], +- include_dirs=[os.path.join(tbb_root, 'include')] if not use_compiler_tbb else [], ++ include_dirs=([os.path.join(tbb_root, 'include')] ++ + tbb_includedirs.split() ++ ) if not use_compiler_tbb else [], + swig_opts =['-c++', '-O', '-threads'] + ( # add '-builtin' later + ['-I' + os.path.join(tbb_root, 'include')] if not use_compiler_tbb else []), + extra_compile_args=compile_flags + tbb_flag, + extra_link_args=tbb_flag, + libraries =([tbb_lib_name] if not use_compiler_tbb else []) + + (['irml'] if platform.system() == "Linux" else []), +- library_dirs=[ rundir, # for custom-builds ++ library_dirs=([rundir, # for custom-builds + os.path.join(tbb_root, 'lib', 'intel64', 'gcc4.8'), # for Linux + os.path.join(tbb_root, 'lib'), # for MacOS + os.path.join(tbb_root, 'lib', 'intel64', 'vc_mt'), # for Windows +- ] if not use_compiler_tbb else [], ++ ] ++ + tbb_libdirs.split() ++ ) if not use_compiler_tbb else [], + language ='c++', + ) + +@@ -98,7 +115,6 @@ class TBBBuild(build): + 'Intended Audience :: System Administrators', + 'Intended Audience :: Other Audience', + 'Intended Audience :: Science/Research', +- 'License :: OSI Approved :: Apache Software License', + 'Operating System :: MacOS :: MacOS X', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX :: Linux', diff --git a/tbb.changes b/tbb.changes index 90c170e..043307d 100644 --- a/tbb.changes +++ b/tbb.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Fri Jan 2 21:06:28 UTC 2026 - Ben Greiner + +- Update to 2022.3.0 + * [Preview] Introduced API for setting dynamic task dependencies + in task_group. This allows successor tasks to execute only + after all their predecessors have completed. + * Extended task_arena with API support for enqueuing functions + into a task_group and waiting for the task_group to complete. + * Introduced API for setting and getting the assertion handler. + This allows applications to set their own assertion handling + functions. +- Update cf-prot.patch, partially fixed upstream +- Add tbb-python-setuptools.patch + * gh#uxlfoundation/oneTBB#1941 + * replace setup.py direct call + ------------------------------------------------------------------- Wed Jul 30 03:38:43 UTC 2025 - Alessandro de Oliveira Faria diff --git a/tbb.spec b/tbb.spec index 94ec151..44bf6ea 100644 --- a/tbb.spec +++ b/tbb.spec @@ -40,7 +40,7 @@ %bcond_with python3 %endif Name: tbb -Version: 2022.2.0 +Version: 2022.3.0 Release: 0 Summary: oneAPI Threading Building Blocks (oneTBB) License: Apache-2.0 @@ -48,6 +48,8 @@ Group: Development/Libraries/C and C++ URL: https://uxlfoundation.github.io/oneTBB/ Source0: https://github.com/uxlfoundation/oneTBB/archive/v%{version}/%{name}-%{version}.tar.gz Source99: tbb-rpmlintrc +# PATCH-FIX-UPSTREAM tbb-python-setuptools.patch gh#uxlfoundation/oneTBB#1941, remove deprecated setup.py usage +Patch1: tbb-python-setuptools.patch # PATCH-FIX-OPENSUSE cmake-remove-include-path.patch -- openCV include error Patch2: cmake-remove-include-path.patch Patch4: add-cmake-check-for-libatomic-requirement-when-build.patch @@ -225,28 +227,23 @@ sed -i '1{/^#!.*env python/ d}' python/TBB.py python/tbb/*.py %endif source */vars.sh -cd .. # rebuild for every python flavor %if %{with python3} -pushd python +pushd python/python_build %pyproject_wheel popd %endif %install -# create empty python build dir (?) -mkdir -p build/python/build %cmake_install source build/*/vars.sh %if %{with python3} -pushd python +pushd build/python/python_build/ %pyproject_install -%{python_expand %fdupes %{buildroot}%{$python_sitearch} - rm -rfv %{buildroot}%{$python_sitearch}/TBB-%{version}*.egg -} +%python_expand %fdupes %{buildroot}%{$python_sitearch} popd %endif -- 2.51.1