<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/4af476f82b0f289f185e5294f5684976bf6ee89b">https://github.com/macports/macports-ports/commit/4af476f82b0f289f185e5294f5684976bf6ee89b</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 4af476f82b0 whisper: update to 1.7.5
</span>4af476f82b0 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 4af476f82b0f289f185e5294f5684976bf6ee89b
</span>Author: Nate Ijams <nate@ijams.me>
AuthorDate: Mon Apr 14 11:08:50 2025 -0400

<span style='display:block; white-space:pre;color:#404040;'>    whisper: update to 1.7.5
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * updates to new version
</span><span style='display:block; white-space:pre;color:#404040;'>    * package now uses CMake to build
</span><span style='display:block; white-space:pre;color:#404040;'>    * now installs needed *.dylib files to lib/
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/72073
</span>---
 audio/whisper/Portfile                       | 36 +++++++++++++-----------
 audio/whisper/files/add-metal-path.diff      | 42 ++++++++++++++++++----------
 audio/whisper/files/ggml-hard-coded.diff     | 15 +++++-----
 audio/whisper/files/whisper-add-depends.diff | 35 +++++++++++++++++++++++
 audio/whisper/files/whisper-add-models.diff  | 15 ++--------
 5 files changed, 93 insertions(+), 50 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/whisper/Portfile b/audio/whisper/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c18ed1aed71..0b679cba845 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/whisper/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/whisper/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,11 +2,11 @@
</span> 
 PortSystem          1.0
 PortGroup           github 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           makefile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span> 
 name                whisper
 categories          audio
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        ggerganov whisper.cpp 1.6.2 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        ggerganov whisper.cpp 1.7.5 v
</span> github.tarball_from archive
 license             MIT
 maintainers         {ijams.me:nate @exprez135} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,36 +24,38 @@ output.wav` to convert the file first.
</span> "
 
 checksums           whisper.cpp-${version}.tar.gz \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  26b0b29e46c990b13c9d10d95c11aa429fc8d56d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  da7988072022acc3cfa61b370b3c51baad017f1900c3dc4e68cb276499f66894 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    5088298
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  211e55a336132a878471382d8002425f069db683 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  2fda42b57b7b8427d724551bd041616d85401fb9382e42b0349132a28920a34f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    6216643 
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-build.target        main
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-makefile.has_destdir    no
</span> patchfiles          whisper-add-models.diff \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    whisper-add-depends.diff \
</span>                     ggml-hard-coded.diff \
                     add-metal-path.diff
 
 post-patch {
     reinplace "s|__PREFIX__|${prefix}|" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        whisper.cpp \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ggml-metal.metal \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ggml-metal.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-build {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    move ${worksrcpath}/main ${worksrcpath}/whisper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        src/whisper.cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ggml/src/ggml-metal/ggml-metal.metal \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ggml/src/ggml-metal/ggml-metal.m
</span> }
 
 destroot {
     xinstall -d ${destroot}${prefix}/bin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 755 ${worksrcpath}/whisper ${destroot}${prefix}/bin/whisper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 ${workpath}/build/bin/whisper-cli ${destroot}${prefix}/bin/whisper
</span> }
 
 post-destroot {
     xinstall -d ${destroot}${prefix}/share/whisper/ggml
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall ${worksrcpath}/ggml-metal.metal ${destroot}${prefix}/share/whisper/ggml
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall ${worksrcpath}/ggml-common.h ${destroot}${prefix}/share/whisper/ggml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/bin/ggml-metal.metal ${destroot}${prefix}/share/whisper/ggml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/bin/ggml-common.h ${destroot}${prefix}/share/whisper/ggml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/src/libwhisper.1.7.5.dylib ${destroot}${prefix}/lib/libwhisper.1.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/ggml/src/libggml.dylib ${destroot}${prefix}/lib/libggml.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/ggml/src/libggml-cpu.dylib ${destroot}${prefix}/lib/libggml-cpu.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/ggml/src/libggml-base.dylib ${destroot}${prefix}/lib/libggml-base.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/ggml/src/ggml-blas/libggml-blas.dylib ${destroot}${prefix}/lib/libggml-blas.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall ${workpath}/build/ggml/src/ggml-metal/libggml-metal.dylib ${destroot}${prefix}/lib/libggml-metal.dylib
</span> }
 
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/whisper/files/add-metal-path.diff b/audio/whisper/files/add-metal-path.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index cda58a7f585..6e06a2aa08a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/whisper/files/add-metal-path.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/whisper/files/add-metal-path.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,14 +1,28 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ggml-metal.m   2024-05-27 02:35:09
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CHANGED-ggml-metal.m   2024-08-09 10:44:38
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -360,7 +360,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (path_resource) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 path_source = [path_resource stringByAppendingPathComponent:@"ggml-metal.metal"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                path_source = [bundle pathForResource:@"ggml-metal" ofType:@"metal"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          path_resource = @"__PREFIX__/share/whisper/ggml";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          GGML_METAL_LOG_INFO("%s: GGML_METAL_PATH_RESOURCES = %s\n", __func__, path_resource ? [path_resource UTF8String] : "nil");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          path_source = [path_resource stringByAppendingPathComponent:@"ggml-metal.metal"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          /* path_source = [bundle pathForResource:@"ggml-metal" ofType:@"metal"];*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (path_source == nil) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ggml/src/ggml-metal/ggml-metal.m.orig  2025-04-12 18:27:34
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ggml/src/ggml-metal/ggml-metal.m       2025-04-13 17:03:44
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -604,21 +604,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         GGML_LOG_INFO("%s: default.metallib not found, loading from source\n", __func__);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         NSString * path_source;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         NSString * path_resource = [[NSProcessInfo processInfo].environment objectForKey:@"GGML_METAL_PATH_RESOURCES"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         GGML_LOG_INFO("%s: GGML_METAL_PATH_RESOURCES = %s\n", __func__, path_resource ? [path_resource UTF8String] : "nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (path_resource) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             path_source = [path_resource stringByAppendingPathComponent:@"ggml-metal.metal"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            path_source = [bundle pathForResource:@"ggml-metal" ofType:@"metal"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      path_resource = @"__PREFIX__/share/whisper/ggml";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      GGML_METAL_LOG_INFO("%s: GGML_METAL_PATH_RESOURCES = %s\n", __func__, path_resource ? [path_resource UTF8String] : "nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      path_source = [path_resource stringByAppendingPathComponent:@"ggml-metal.metal"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* path_source = [bundle pathForResource:@"ggml-metal" ofType:@"metal"];*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (path_source == nil) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             GGML_LOG_WARN("%s: error: could not use bundle path to find ggml-metal.metal, falling back to trying cwd\n", __func__);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             path_source = @"ggml-metal.metal";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         GGML_LOG_INFO("%s: loading '%s'\n", __func__, [path_source UTF8String]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         src = [NSString stringWithContentsOfFile:path_source encoding:NSUTF8StringEncoding error:&error];
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/whisper/files/ggml-hard-coded.diff b/audio/whisper/files/ggml-hard-coded.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index ef74cda325e..84aeae7e55a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/whisper/files/ggml-hard-coded.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/whisper/files/ggml-hard-coded.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,10 +1,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- ggml-metal.metal       2024-05-27 02:35:09
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CHANGED-ggml-metal.metal       2024-08-09 10:44:53
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define GGML_COMMON_DECL_METAL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define GGML_COMMON_IMPL_METAL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ggml/src/ggml-metal/ggml-metal.metal.orig      2025-04-12 18:00:39
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ggml/src/ggml-metal/ggml-metal.metal   2025-04-12 18:16:51
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(GGML_METAL_EMBED_LIBRARY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __embed_ggml-common.h__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span> -#include "ggml-common.h"
 +#include "__PREFIX__/share/whisper/ggml/ggml-common.h"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <metal_stdlib>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ggml-metal-impl.h"
</span>  
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/whisper/files/whisper-add-depends.diff b/audio/whisper/files/whisper-add-depends.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9b9190420d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/whisper/files/whisper-add-depends.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,35 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/whisper.cpp.orig   2025-04-13 16:33:17
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/whisper.cpp        2025-04-13 16:53:25
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,30 +22,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <climits>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <codecvt>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdarg>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdio>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstring>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <fstream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <functional>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <map>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mutex>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <random>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <regex>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <set>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <thread>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <vector>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <dirent.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // dummy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma warning(disable: 4244 4267) // possible loss of data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(WHISPER_BIG_ENDIAN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static T byteswap(T value) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     T value_swapped;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     char * source = reinterpret_cast<char *>(&value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     char * target = reinterpret_cast<char *>(&value_swapped);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int size = sizeof(T);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (int i = 0; i < size; i++) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/whisper/files/whisper-add-models.diff b/audio/whisper/files/whisper-add-models.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index c56c47bd6df..425c277c51f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/whisper/files/whisper-add-models.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/whisper/files/whisper-add-models.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,15 +1,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- whisper.cpp    2024-07-31 09:14:56
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CHANGED.cpp    2024-08-09 10:45:42
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -53,6 +53,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <random>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <functional>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <codecvt>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <dirent.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if defined(_MSC_VER)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #pragma warning(disable: 4244 4267) // possible loss of data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3621,17 +3623,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/whisper.cpp.orig   2025-04-12 18:05:12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/whisper.cpp        2025-04-12 18:05:53
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3634,17 +3634,50 @@
</span>  
  struct whisper_context * whisper_init_from_file_with_params_no_state(const char * path_model, struct whisper_context_params params) {
      WHISPER_LOG_INFO("%s: loading model from '%s'\n", __func__, path_model);
</pre><pre style='margin:0'>

</pre>