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
This commit is contained in:
Daniel Hiltgen 2024-02-01 19:34:36 -08:00
parent 7913104527
commit e1f50377f4

View file

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