From 55ae0ba05ca7b3d959723191d8c89b12f9089fe5 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Thu, 6 Jun 2024 09:51:59 -0600 Subject: [PATCH 01/17] Update to 1.6.2 Signed-off-by: Tom Rix --- .gitignore | 1 + ...er.so-should-be-position-independent.patch | 27 ------------------- sources | 1 + whisper-cpp.spec | 4 +-- 4 files changed, 3 insertions(+), 30 deletions(-) delete mode 100644 0001-libwhisper.so-should-be-position-independent.patch diff --git a/.gitignore b/.gitignore index c6ce3e1..d9310b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /whisper.cpp-1.5.4.tar.gz +/whisper.cpp-1.6.2.tar.gz diff --git a/0001-libwhisper.so-should-be-position-independent.patch b/0001-libwhisper.so-should-be-position-independent.patch deleted file mode 100644 index a26f2dc..0000000 --- a/0001-libwhisper.so-should-be-position-independent.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 37bd815bdf19522e50fd00478cbc962d05715db8 Mon Sep 17 00:00:00 2001 -From: Tom Rix -Date: Sat, 20 Jan 2024 08:38:15 -0500 -Subject: [PATCH] libwhisper.so should be position independent - -This is similar to how libllama.so is built. - -Signed-off-by: Tom Rix ---- - CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 01e64c4..a97f9c9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -504,6 +504,7 @@ else() - endif() - - if (BUILD_SHARED_LIBS) -+ set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON) - target_link_libraries(${TARGET} PUBLIC - ${CMAKE_DL_LIBS} - ) --- -2.43.0 - diff --git a/sources b/sources index f06b5fa..c75b3fb 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (whisper.cpp-1.5.4.tar.gz) = 0375c32bc5a590e6152e1a37059554371ceab99b3c93a733c084cec356c477ab2bc2d78fc0b661104153be0becb41f0edeff68ab762cb51c528309055c141455 +SHA512 (whisper.cpp-1.6.2.tar.gz) = 17e0485fb93fdea1a89f584a64db35f05371e0b8710a539f0dffca30bd3a2fff44c72ea754556566ca3cc55415b1e8f2bb868665437f5c93b9ce666b4fe53fb3 diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 927c834..be47e40 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,15 +8,13 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.5.4 +Version: 1.6.2 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/whisper.cpp-%{version}.tar.gz # https://github.com/ggerganov/whisper.cpp/pull/1791 Patch0: 0001-Generalize-install-locations.patch -# https://github.com/ggerganov/whisper.cpp/pull/1792 -Patch1: 0001-libwhisper.so-should-be-position-independent.patch ExclusiveArch: x86_64 aarch64 ppc64le %global toolchain clang From 67835395bd48711ad9d213b49c4e40d4aa46edb7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 09:19:15 +0000 Subject: [PATCH 02/17] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 55ca1f6d271a7757f8b4f4b8f088f807fa73265d Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Mon, 14 Oct 2024 14:34:02 -0700 Subject: [PATCH 03/17] Update to 1.7.1 Signed-off-by: Tom Rix --- .gitignore | 1 + sources | 1 + whisper-cpp.spec | 17 +++++++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index d9310b7..08700e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /whisper.cpp-1.5.4.tar.gz /whisper.cpp-1.6.2.tar.gz +/whisper.cpp-1.7.1.tar.gz diff --git a/sources b/sources index c75b3fb..05cdd43 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (whisper.cpp-1.5.4.tar.gz) = 0375c32bc5a590e6152e1a37059554371ceab99b3c93a733c084cec356c477ab2bc2d78fc0b661104153be0becb41f0edeff68ab762cb51c528309055c141455 SHA512 (whisper.cpp-1.6.2.tar.gz) = 17e0485fb93fdea1a89f584a64db35f05371e0b8710a539f0dffca30bd3a2fff44c72ea754556566ca3cc55415b1e8f2bb868665437f5c93b9ce666b4fe53fb3 +SHA512 (whisper.cpp-1.7.1.tar.gz) = 944d8a6e4a770462e77139d918fd1d5b93efca377051d83a584d91164ec73fa50b5bfbc7d85014151b3b5c80fa59cfd386e456960401f8b3c66a9788585cac46 diff --git a/whisper-cpp.spec b/whisper-cpp.spec index be47e40..0a1d285 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,13 +8,13 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.6.2 +Version: 1.7.1 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/whisper.cpp-%{version}.tar.gz # https://github.com/ggerganov/whisper.cpp/pull/1791 -Patch0: 0001-Generalize-install-locations.patch +# Patch0: 0001-Generalize-install-locations.patch ExclusiveArch: x86_64 aarch64 ppc64le %global toolchain clang @@ -65,8 +65,8 @@ recognition (ASR) model: %prep %autosetup -p1 -n whisper.cpp-%{version} -# verson the *.so -sed -i -e 's/POSITION_INDEPENDENT_CODE ON/POSITION_INDEPENDENT_CODE ON SOVERSION %{version}/' CMakeLists.txt +# verson the ggml *.so +sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION ${SOVERSION}@' ggml/src/CMakeLists.txt %build @@ -82,18 +82,23 @@ sed -i -e 's/POSITION_INDEPENDENT_CODE ON/POSITION_INDEPENDENT_CODE ON SOVERSION %install %cmake_install +find %{buildroot} -name 'whisper.pc' -delete + %check %ctest %files %license LICENSE -%{_libdir}/libwhisper.so.%{version} +%{_libdir}/libggml.so.* +%{_libdir}/libwhisper.so.* %files devel %doc README.md -%{_includedir}/ggml.h +%{_includedir}/ggml*.h %{_includedir}/whisper.h +%{_libdir}/libggml.so %{_libdir}/libwhisper.so +%{_libdir}/cmake/whisper/*.cmake %changelog %autochangelog From da17e7f80fff1d68db9bac66704fe52e568b4afb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:59:40 +0000 Subject: [PATCH 04/17] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 9d220c305420f905536f9c3120b00f54c53fd310 Mon Sep 17 00:00:00 2001 From: "Alexander F. Lent" Date: Sat, 15 Feb 2025 22:39:45 -0500 Subject: [PATCH 05/17] Fix build options for broad compatability The upstream release v1.7.0 changed the build options for the GGML library; update the package to use those to: Opt-out of all the x86_64 instruction set extensions. (Fedora targets the base x86_64 architecture.) --- whisper-cpp.spec | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 0a1d285..9bbb207 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -72,10 +72,15 @@ sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %cmake \ -DWHISPER_BUILD_TESTS=ON \ - -DWHISPER_NO_AVX=ON \ - -DWHISPER_NO_AVX2=ON \ - -DWHISPER_NO_FMA=ON \ - -DWHISPER_NO_F16C=ON + -DGGML_NATIVE=OFF \ + -DGGML_AVX=OFF \ + -DGGML_AVX2=OFF \ + -DGGML_AVX512=OFF \ + -DGGML_AVX512_VBMI=OFF \ + -DGGML_AVX512_VNNI=OFF \ + -DGGML_AVX512_BF16=OFF \ + -DGGML_FMA=OFF \ + -DGGML_F16C=OFF %cmake_build @@ -85,6 +90,7 @@ sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION find %{buildroot} -name 'whisper.pc' -delete %check +# FIXME: Tests have been disabled in upstream sources since v1.7.0 %ctest %files From 5552e26214691b2fef8aa0678fb2a54b623fec58 Mon Sep 17 00:00:00 2001 From: "Alexander F. Lent" Date: Fri, 14 Feb 2025 00:37:53 -0500 Subject: [PATCH 06/17] Add option for OpenVINO Backend It is disabled by default because the OpenVINO backend has a crash bug that is only fixed in v1.7.2. [1] [1]: https://github.com/ggerganov/whisper.cpp/pull/2464 Signed-off-by: Alexander F. Lent --- whisper-cpp.spec | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 9bbb207..2fee429 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -19,8 +19,20 @@ Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/whisper.cpp-%{versi ExclusiveArch: x86_64 aarch64 ppc64le %global toolchain clang +# OpenVINO only supports x86_64 and aarch64 +# Presently, Fedora only packages it on x86_64 +%ifarch x86_64 +# FIXME: Enable OpenVINO backend on 1.7.2 and later +%bcond_with openvino +%else +%bcond_with openvino +%endif + BuildRequires: cmake BuildRequires: clang +%if %{with openvino} +BuildRequires: openvino-devel +%endif %description High-performance inference of OpenAI's Whisper automatic speech @@ -72,6 +84,9 @@ sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %cmake \ -DWHISPER_BUILD_TESTS=ON \ +%if %{with openvino} + -DWHISPER_OPENVINO=1 \ +%endif -DGGML_NATIVE=OFF \ -DGGML_AVX=OFF \ -DGGML_AVX2=OFF \ From 1eb2ee0ee680fb0fb796a1b42a7dbf9ada862c40 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 20:24:29 +0000 Subject: [PATCH 07/17] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 0087eeebaaa9aa774d7de842eff125d4ee503471 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Sat, 9 Aug 2025 12:58:30 -0700 Subject: [PATCH 08/17] Update to 1.7.6 Signed-off-by: Tom Rix --- .gitignore | 1 + 0001-Generalize-install-locations.patch | 62 ------------------------- sources | 4 +- whisper-cpp.spec | 50 +++++++++++++++++--- 4 files changed, 45 insertions(+), 72 deletions(-) delete mode 100644 0001-Generalize-install-locations.patch diff --git a/.gitignore b/.gitignore index 08700e5..54e96b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /whisper.cpp-1.5.4.tar.gz /whisper.cpp-1.6.2.tar.gz /whisper.cpp-1.7.1.tar.gz +/whisper.cpp-1.7.6.tar.gz diff --git a/0001-Generalize-install-locations.patch b/0001-Generalize-install-locations.patch deleted file mode 100644 index e5f6444..0000000 --- a/0001-Generalize-install-locations.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 62ce17eb08b838fd4ac78d7fc3ece57694aad32a Mon Sep 17 00:00:00 2001 -From: Tom Rix -Date: Sat, 20 Jan 2024 08:00:46 -0500 -Subject: [PATCH] Generalize install locations - -On Fedora the install location is dependent on the arch -ex/ for x86_64 libraries install to /usr/lib64 - -So copy how llama-cpp does its install, replacing 'llama' with 'whisper' -in the cmake variables. - -Signed-off-by: Tom Rix ---- - CMakeLists.txt | 17 ++++++++++++----- - cmake/DefaultTargetOptions.cmake | 4 ++-- - 2 files changed, 14 insertions(+), 7 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 567a58d..01e64c4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -549,12 +549,19 @@ set_target_properties(${TARGET} PROPERTIES PUBLIC_HEADER "ggml.h;whisper.h") - - include(GNUInstallDirs) - -+set(WHISPER_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} -+ CACHE PATH "Location of header files") -+set(WHISPER_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} -+ CACHE PATH "Location of library files") -+set(WHISPER_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} -+ CACHE PATH "Location of binary files") -+ - install(TARGETS ${TARGET} -- LIBRARY DESTINATION lib -- ARCHIVE DESTINATION lib/static -- RUNTIME DESTINATION bin -- RESOURCE DESTINATION bin -- PUBLIC_HEADER DESTINATION include -+ LIBRARY DESTINATION "${WHISPER_LIB_INSTALL_DIR}" -+ ARCHIVE DESTINATION "${WHISPER_LIB_INSTALL_DIR}/static" -+ RUNTIME DESTINATION "${WHISPER_BIN_INSTALL_DIR}" -+ RESOURCE DESTINATION "${WHISPER_BIN_INSTALL_DIR}" -+ PUBLIC_HEADER DESTINATION "${WHISPER_INCLUDE_INSTALL_DIR}" - ) - - # -diff --git a/cmake/DefaultTargetOptions.cmake b/cmake/DefaultTargetOptions.cmake -index b4e93e3..277b99e 100644 ---- a/cmake/DefaultTargetOptions.cmake -+++ b/cmake/DefaultTargetOptions.cmake -@@ -12,6 +12,6 @@ target_compile_features(${TARGET} - set_target_properties(${TARGET} - PROPERTIES - EXPORT_COMPILE_COMMANDS ON -- RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" -- INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib" -+ RUNTIME_OUTPUT_DIRECTORY "${WHISPER_BIN_INSTALL_DIR}" -+ INSTALL_RPATH "${WHISPER_LIB_INSTALL_DIR}" - ) --- -2.43.0 - diff --git a/sources b/sources index 05cdd43..09e37ba 100644 --- a/sources +++ b/sources @@ -1,3 +1 @@ -SHA512 (whisper.cpp-1.5.4.tar.gz) = 0375c32bc5a590e6152e1a37059554371ceab99b3c93a733c084cec356c477ab2bc2d78fc0b661104153be0becb41f0edeff68ab762cb51c528309055c141455 -SHA512 (whisper.cpp-1.6.2.tar.gz) = 17e0485fb93fdea1a89f584a64db35f05371e0b8710a539f0dffca30bd3a2fff44c72ea754556566ca3cc55415b1e8f2bb868665437f5c93b9ce666b4fe53fb3 -SHA512 (whisper.cpp-1.7.1.tar.gz) = 944d8a6e4a770462e77139d918fd1d5b93efca377051d83a584d91164ec73fa50b5bfbc7d85014151b3b5c80fa59cfd386e456960401f8b3c66a9788585cac46 +SHA512 (whisper.cpp-1.7.6.tar.gz) = 7e0ec9d6afe234afaaa83d7d69051504252c27ecdacbedf3d70992429801bcd1078794a0bb76cf4dafb74131dd0f506bd24c3f3100815c35b8ac2b12336492ef diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 2fee429..8ddb90d 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,13 +8,11 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.7.1 +Version: 1.7.6 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/whisper.cpp-%{version}.tar.gz -# https://github.com/ggerganov/whisper.cpp/pull/1791 -# Patch0: 0001-Generalize-install-locations.patch ExclusiveArch: x86_64 aarch64 ppc64le %global toolchain clang @@ -28,8 +26,18 @@ ExclusiveArch: x86_64 aarch64 ppc64le %bcond_with openvino %endif +%bcond_with test +%if %{with test} +%global build_test ON +%else +%global build_test OFF +%endif + +%global sover %{version} + BuildRequires: cmake BuildRequires: clang +BuildRequires: git %if %{with openvino} BuildRequires: openvino-devel %endif @@ -77,25 +85,43 @@ recognition (ASR) model: %prep %autosetup -p1 -n whisper.cpp-%{version} -# verson the ggml *.so -sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION ${SOVERSION}@' ggml/src/CMakeLists.txt +# Add SOVERSION to the shared libraries +sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' src/CMakeLists.txt +sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' ggml/src/CMakeLists.txt +sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' ggml/src/ggml-cpu/CMakeLists.txt +sed -i '/target_compile_definitions(${GGML_CPU_NAME} PRIVATE ${ARCH_DEFINITIONS})/a\ +set_target_properties(${GGML_CPU_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON SOVERSION %{sover})' ggml/src/ggml-cpu/CMakeLists.txt %build %cmake \ - -DWHISPER_BUILD_TESTS=ON \ + -DWHISPER_BUILD_EXAMPLES=%{build_test} \ + -DWHISPER_BUILD_SERVER=%{build_test} \ + -DWHISPER_BUILD_TESTS=%{build_test} \ %if %{with openvino} -DWHISPER_OPENVINO=1 \ %endif -DGGML_NATIVE=OFF \ + -DGGML_AMX_TILE=OFF \ + -DGGML_AMX_INT8=OFF \ + -DGGML_AMX_BF16=OFF \ -DGGML_AVX=OFF \ + -DGGML_AVX_VNNI=OFF \ -DGGML_AVX2=OFF \ -DGGML_AVX512=OFF \ -DGGML_AVX512_VBMI=OFF \ -DGGML_AVX512_VNNI=OFF \ -DGGML_AVX512_BF16=OFF \ + -DGGML_BMI2=OFF \ -DGGML_FMA=OFF \ - -DGGML_F16C=OFF + -DGGML_F16C=OFF \ + -DGGML_LASX=OFF \ + -DGGML_LSX=OFF \ + -DGGML_RVV=OFF \ + -DGGML_RV_ZFH=OFF \ + -DGGML_SSE42=OFF \ + -DGGML_XTHEADVECTOR=OFF \ + -DGGML_VXE=OFF %cmake_build @@ -105,21 +131,31 @@ sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION find %{buildroot} -name 'whisper.pc' -delete %check +%if %{with test} # FIXME: Tests have been disabled in upstream sources since v1.7.0 %ctest +%endif %files %license LICENSE %{_libdir}/libggml.so.* +%{_libdir}/libggml-base.so.* +%{_libdir}/libggml-cpu.so.* %{_libdir}/libwhisper.so.* %files devel %doc README.md %{_includedir}/ggml*.h +%{_includedir}/gguf.h %{_includedir}/whisper.h %{_libdir}/libggml.so +%{_libdir}/libggml-base.so +%{_libdir}/libggml-cpu.so %{_libdir}/libwhisper.so +%dir %{_libdir}/cmake/whisper +%dir %{_libdir}/cmake/ggml %{_libdir}/cmake/whisper/*.cmake +%{_libdir}/cmake/ggml/*.cmake %changelog %autochangelog From 2ef135cfe7318978556be8321a7db5b5cd93a869 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Sat, 9 Aug 2025 15:54:51 -0700 Subject: [PATCH 09/17] Enable hip backend Reenable openvino option. Signed-off-by: Tom Rix --- whisper-cpp.spec | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 8ddb90d..5fbcea0 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -15,15 +15,29 @@ URL: https://github.com/ggerganov/whisper.cpp Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/whisper.cpp-%{version}.tar.gz ExclusiveArch: x86_64 aarch64 ppc64le -%global toolchain clang +%global toolchain gcc # OpenVINO only supports x86_64 and aarch64 # Presently, Fedora only packages it on x86_64 %ifarch x86_64 -# FIXME: Enable OpenVINO backend on 1.7.2 and later -%bcond_with openvino +%bcond_without openvino +%bcond_without rocm %else %bcond_with openvino +%bcond_with rocm +%endif + +%if %{with openvino} +%global build_openvino ON +%else +%global build_openvino OFF +%endif + +%if %{with rocm} +%global build_rocm ON +%else +%global build_rocm OFF +%global rocm_gpu_list_default %{nil} %endif %bcond_with test @@ -36,12 +50,19 @@ ExclusiveArch: x86_64 aarch64 ppc64le %global sover %{version} BuildRequires: cmake -BuildRequires: clang +BuildRequires: gcc-c++ BuildRequires: git + %if %{with openvino} BuildRequires: openvino-devel %endif +%if %{with rocm} +BuildRequires: hipblas-devel +BuildRequires: rocblas-devel +BuildRequires: rocm-rpm-macros +%endif + %description High-performance inference of OpenAI's Whisper automatic speech recognition (ASR) model: @@ -89,18 +110,18 @@ recognition (ASR) model: sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' src/CMakeLists.txt sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' ggml/src/CMakeLists.txt sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' ggml/src/ggml-cpu/CMakeLists.txt -sed -i '/target_compile_definitions(${GGML_CPU_NAME} PRIVATE ${ARCH_DEFINITIONS})/a\ -set_target_properties(${GGML_CPU_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON SOVERSION %{sover})' ggml/src/ggml-cpu/CMakeLists.txt +sed -i '/target_compile_definitions(${backend} PUBLIC GGML_BACKEND_SHARED)/a\ +set_target_properties(${backend} PROPERTIES POSITION_INDEPENDENT_CODE ON SOVERSION %{sover})' ggml/src/CMakeLists.txt %build %cmake \ + -DCMAKE_HIP_ARCHITECTURES=%{rocm_gpu_list_default} \ -DWHISPER_BUILD_EXAMPLES=%{build_test} \ -DWHISPER_BUILD_SERVER=%{build_test} \ -DWHISPER_BUILD_TESTS=%{build_test} \ -%if %{with openvino} - -DWHISPER_OPENVINO=1 \ -%endif + -DWHISPER_OPENVINO=%{build_openvino} \ + -DGGML_HIP=%{build_rocm} \ -DGGML_NATIVE=OFF \ -DGGML_AMX_TILE=OFF \ -DGGML_AMX_INT8=OFF \ @@ -143,6 +164,10 @@ find %{buildroot} -name 'whisper.pc' -delete %{_libdir}/libggml-cpu.so.* %{_libdir}/libwhisper.so.* +%if %{with rocm} +%{_libdir}/libggml-hip.so.* +%endif + %files devel %doc README.md %{_includedir}/ggml*.h @@ -157,6 +182,10 @@ find %{buildroot} -name 'whisper.pc' -delete %{_libdir}/cmake/whisper/*.cmake %{_libdir}/cmake/ggml/*.cmake +%if %{with rocm} +%{_libdir}/libggml-hip.so +%endif + %changelog %autochangelog From 075e79884e40c15a13ddb3218db9f81a982a56eb Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Wed, 15 Oct 2025 07:17:18 -0700 Subject: [PATCH 10/17] Update to 1.8.1 Signed-off-by: Tom Rix --- .gitignore | 1 + sources | 2 +- whisper-cpp.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 54e96b7..1818f46 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /whisper.cpp-1.6.2.tar.gz /whisper.cpp-1.7.1.tar.gz /whisper.cpp-1.7.6.tar.gz +/whisper.cpp-1.8.1.tar.gz diff --git a/sources b/sources index 09e37ba..556d8d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (whisper.cpp-1.7.6.tar.gz) = 7e0ec9d6afe234afaaa83d7d69051504252c27ecdacbedf3d70992429801bcd1078794a0bb76cf4dafb74131dd0f506bd24c3f3100815c35b8ac2b12336492ef +SHA512 (whisper.cpp-1.8.1.tar.gz) = 5dc2f7d8833a592a0ba3d8684425e030876e321f5005bec354564600923195eff906937a43e7604326fa2caf4548331a3fdff4b0797d66baa2dfa8e066e321f3 diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 5fbcea0..ecbb44f 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,7 +8,7 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.7.6 +Version: 1.8.1 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp From 9e6a1264ff94b6882c45f13dc5bcb06a42f1ecb9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:13:42 +0000 Subject: [PATCH 11/17] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 0f20225710edf18d83a3e1a9e75e4258242e8a3a Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Sun, 15 Mar 2026 07:43:58 -0700 Subject: [PATCH 12/17] Update to 1.8.3 Signed-off-by: Tom Rix --- .gitignore | 1 + sources | 2 +- whisper-cpp.spec | 10 +--------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 1818f46..ddf7e66 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /whisper.cpp-1.7.1.tar.gz /whisper.cpp-1.7.6.tar.gz /whisper.cpp-1.8.1.tar.gz +/whisper.cpp-1.8.3.tar.gz diff --git a/sources b/sources index 556d8d5..01c28d2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (whisper.cpp-1.8.1.tar.gz) = 5dc2f7d8833a592a0ba3d8684425e030876e321f5005bec354564600923195eff906937a43e7604326fa2caf4548331a3fdff4b0797d66baa2dfa8e066e321f3 +SHA512 (whisper.cpp-1.8.3.tar.gz) = be5b02e4d48a92d632e5f2385c42c0c74b176021fb2a68fb6961ef3c83e85fe4930d168b6436667f62c4637315a321c5825644c6f459f6b6ed0660306a1bb4e0 diff --git a/whisper-cpp.spec b/whisper-cpp.spec index ecbb44f..cdfcbe8 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,7 +8,7 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.8.1 +Version: 1.8.3 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp @@ -106,15 +106,7 @@ recognition (ASR) model: %prep %autosetup -p1 -n whisper.cpp-%{version} -# Add SOVERSION to the shared libraries -sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' src/CMakeLists.txt -sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' ggml/src/CMakeLists.txt -sed -i -e 's@POSITION_INDEPENDENT_CODE ON@POSITION_INDEPENDENT_CODE ON SOVERSION %{sover}@' ggml/src/ggml-cpu/CMakeLists.txt -sed -i '/target_compile_definitions(${backend} PUBLIC GGML_BACKEND_SHARED)/a\ -set_target_properties(${backend} PROPERTIES POSITION_INDEPENDENT_CODE ON SOVERSION %{sover})' ggml/src/CMakeLists.txt - %build - %cmake \ -DCMAKE_HIP_ARCHITECTURES=%{rocm_gpu_list_default} \ -DWHISPER_BUILD_EXAMPLES=%{build_test} \ From d0e377fea916ad74cdab90f9c57d02e397dbdf5b Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Sat, 20 Jun 2026 08:04:52 -0700 Subject: [PATCH 13/17] Rebuild for openvino Signed-off-by: Tom Rix From d808be8b880994f9a30bcbefd4693cb8cd3f2a81 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:48:02 +0000 Subject: [PATCH 14/17] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From 624d773521054d3b57179a4882d0e82632258d09 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Mon, 27 Jul 2026 10:41:15 -0700 Subject: [PATCH 15/17] Disable openvino to work around a ftbfs Signed-off-by: Tom Rix --- whisper-cpp.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/whisper-cpp.spec b/whisper-cpp.spec index cdfcbe8..908ad54 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -20,7 +20,8 @@ ExclusiveArch: x86_64 aarch64 ppc64le # OpenVINO only supports x86_64 and aarch64 # Presently, Fedora only packages it on x86_64 %ifarch x86_64 -%bcond_without openvino +# FTBFS 7/27/26 openvino needs rebuilding at least +%bcond_with openvino %bcond_without rocm %else %bcond_with openvino From 06d46bf85cdf7a25d863a8a62ea04e834eb4e64c Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Mon, 17 Aug 2026 15:05:38 -0700 Subject: [PATCH 16/17] Update to 1.9.2 Signed-off-by: Tom Rix --- .gitignore | 1 + sources | 2 +- whisper-cpp.spec | 22 ++++++++++++---------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index ddf7e66..52f8268 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /whisper.cpp-1.7.6.tar.gz /whisper.cpp-1.8.1.tar.gz /whisper.cpp-1.8.3.tar.gz +/whisper.cpp-1.9.2.tar.gz diff --git a/sources b/sources index 01c28d2..102a62b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (whisper.cpp-1.8.3.tar.gz) = be5b02e4d48a92d632e5f2385c42c0c74b176021fb2a68fb6961ef3c83e85fe4930d168b6436667f62c4637315a321c5825644c6f459f6b6ed0660306a1bb4e0 +SHA512 (whisper.cpp-1.9.2.tar.gz) = 68ecbd924afe175c5ca898348f37ce348f96ba60cd2112aab949a45607cf153d9fe680fca3dd42a7648e53ea241a5b99b84081940d06cf47b22e74710ad3c882 diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 908ad54..15090bf 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,7 +8,7 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.8.3 +Version: 1.9.2 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp @@ -36,9 +36,11 @@ ExclusiveArch: x86_64 aarch64 ppc64le %if %{with rocm} %global build_rocm ON +# need our own gpu list, without gfx1250 +%global rocm_gpu_list "gfx9-generic;gfx942;gfx950;gfx10-1-generic;gfx10-3-generic;gfx1100;gfx1101;gfx1102;gfx1103;gfx1150;gfx1151;gfx1152;gfx1153;gfx1200;gfx1201" %else %global build_rocm OFF -%global rocm_gpu_list_default %{nil} +%global rocm_gpu_list %{nil} %endif %bcond_with test @@ -109,7 +111,7 @@ recognition (ASR) model: %build %cmake \ - -DCMAKE_HIP_ARCHITECTURES=%{rocm_gpu_list_default} \ + -DCMAKE_HIP_ARCHITECTURES=%{rocm_gpu_list} \ -DWHISPER_BUILD_EXAMPLES=%{build_test} \ -DWHISPER_BUILD_SERVER=%{build_test} \ -DWHISPER_BUILD_TESTS=%{build_test} \ @@ -156,6 +158,7 @@ find %{buildroot} -name 'whisper.pc' -delete %{_libdir}/libggml-base.so.* %{_libdir}/libggml-cpu.so.* %{_libdir}/libwhisper.so.* +%{_libdir}/libparakeet.so.* %if %{with rocm} %{_libdir}/libggml-hip.so.* @@ -163,17 +166,16 @@ find %{buildroot} -name 'whisper.pc' -delete %files devel %doc README.md -%{_includedir}/ggml*.h -%{_includedir}/gguf.h -%{_includedir}/whisper.h +%{_includedir}/*.h %{_libdir}/libggml.so %{_libdir}/libggml-base.so %{_libdir}/libggml-cpu.so +%{_libdir}/libparakeet.so %{_libdir}/libwhisper.so -%dir %{_libdir}/cmake/whisper -%dir %{_libdir}/cmake/ggml -%{_libdir}/cmake/whisper/*.cmake -%{_libdir}/cmake/ggml/*.cmake +%{_libdir}/cmake/ggml/ +%{_libdir}/cmake/parakeet/ +%{_libdir}/cmake/whisper/ +%{_libdir}/pkgconfig/parakeet.pc %if %{with rocm} %{_libdir}/libggml-hip.so From 5b4c9cd758f421852bf571af98a223523d5a7361 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Sun, 23 Aug 2026 13:10:41 -0700 Subject: [PATCH 17/17] Update to 1.9.3 Signed-off-by: Tom Rix --- .gitignore | 1 + sources | 2 +- whisper-cpp.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 52f8268..54ad0d1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /whisper.cpp-1.8.1.tar.gz /whisper.cpp-1.8.3.tar.gz /whisper.cpp-1.9.2.tar.gz +/whisper.cpp-1.9.3.tar.gz diff --git a/sources b/sources index 102a62b..22e1739 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (whisper.cpp-1.9.2.tar.gz) = 68ecbd924afe175c5ca898348f37ce348f96ba60cd2112aab949a45607cf153d9fe680fca3dd42a7648e53ea241a5b99b84081940d06cf47b22e74710ad3c882 +SHA512 (whisper.cpp-1.9.3.tar.gz) = 5e01ca94a49438b71e38c3cab710cf75a7aa76a1ae03fe8f81b1a5beb794becb1ae1c6e078e3eea5526e4ad89ae4cc0306d17974541050afb3a7ac1d09f94768 diff --git a/whisper-cpp.spec b/whisper-cpp.spec index 15090bf..2530b24 100644 --- a/whisper-cpp.spec +++ b/whisper-cpp.spec @@ -8,7 +8,7 @@ License: MIT # examples/whisper.android/gradlew* # These are not distributed -Version: 1.9.2 +Version: 1.9.3 Release: %autorelease URL: https://github.com/ggerganov/whisper.cpp