Jelajahi Sumber

Harden generate patching model

Only apply patches if we have any, and make sure to cleanup
every file we patched at the end to leave the tree clean
Daniel Hiltgen 1 tahun lalu
induk
melakukan
e1f50377f4
1 mengubah file dengan 18 tambahan dan 8 penghapusan
  1. 18 8
      llm/generate/gen_common.sh

+ 18 - 8
llm/generate/gen_common.sh

@@ -65,15 +65,17 @@ apply_patches() {
         echo 'include (../../../ext_server/CMakeLists.txt) # ollama' >>${LLAMACPP_DIR}/examples/server/CMakeLists.txt
     fi
 
-    # apply temporary patches until fix is upstream
-    for patch in ../patches/*.diff; do
-        for file in $(grep "^+++ " ${patch} | cut -f2 -d' ' | cut -f2- -d/); do
-            (cd ${LLAMACPP_DIR}; git checkout ${file})
+    if [ -n "$(ls -A ../patches/*.diff)" ]; then
+        # apply temporary patches until fix is upstream
+        for patch in ../patches/*.diff; do
+            for file in $(grep "^+++ " ${patch} | cut -f2 -d' ' | cut -f2- -d/); do
+                (cd ${LLAMACPP_DIR}; git checkout ${file})
+            done
         done
-    done
-    for patch in ../patches/*.diff; do
-        (cd ${LLAMACPP_DIR} && git apply ${patch})
-    done
+        for patch in ../patches/*.diff; do
+            (cd ${LLAMACPP_DIR} && git apply ${patch})
+        done
+    fi
 
     # Avoid duplicate main symbols when we link into the cgo binary
     sed -e 's/int main(/int __main(/g' <${LLAMACPP_DIR}/examples/server/server.cpp >${LLAMACPP_DIR}/examples/server/server.cpp.tmp &&
@@ -112,4 +114,12 @@ compress_libs() {
 # Keep the local tree clean after we're done with the build
 cleanup() {
     (cd ${LLAMACPP_DIR}/examples/server/ && git checkout CMakeLists.txt server.cpp)
+
+    if [ -n "$(ls -A ../patches/*.diff)" ]; then
+        for patch in ../patches/*.diff; do
+            for file in $(grep "^+++ " ${patch} | cut -f2 -d' ' | cut -f2- -d/); do
+                (cd ${LLAMACPP_DIR}; git checkout ${file})
+            done
+        done
+    fi
 }