Skip to content

Commit 8762880

Browse files
authored
Harden koboldcpp.sh against conda hijacking (ggml-org#857)
* Harden against conda hijacks Turns out conda can override the location of our packages, by ignoring the conda rc files we can prevent this. * Harden even further Turns out not everything has a --no-rc option, now we hardcode the path. * Remove --no-rc in run Not supported in run, breaks the commands.
1 parent 52f9911 commit 8762880

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

koboldcpp.sh

+9-9
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ if [[ ! -f "conda/envs/linux/bin/python" || $1 == "rebuild" ]]; then
1111
else
1212
KCPP_CUDA=11.5.0
1313
fi
14-
bin/micromamba create --no-shortcuts -r conda -n linux -f environment.tmp.yaml -y
15-
bin/micromamba create --no-shortcuts -r conda -n linux -f environment.tmp.yaml -y
16-
bin/micromamba run -r conda -n linux make clean
14+
bin/micromamba create --no-rc --no-shortcuts -r conda -p conda/envs/linux -f environment.tmp.yaml -y
15+
bin/micromamba create --no-rc --no-shortcuts -r conda -p conda/envs/linux -f environment.tmp.yaml -y
16+
bin/micromamba run -r conda -p conda/envs/linux make clean
1717
echo $KCPP_CUDA > conda/envs/linux/cudaver
1818
echo rm environment.tmp.yaml
1919
fi
2020
KCPP_CUDA=$(<conda/envs/linux/cudaver)
2121
KCPP_CUDAAPPEND=-cuda${KCPP_CUDA//.}$KCPP_APPEND
2222

23-
bin/micromamba run -r conda -n linux make LLAMA_VULKAN=1 LLAMA_OPENBLAS=1 LLAMA_CLBLAST=1 LLAMA_CUBLAS=1 LLAMA_PORTABLE=1 LLAMA_ADD_CONDA_PATHS=1
23+
bin/micromamba run -r conda -p conda/envs/linux make LLAMA_VULKAN=1 LLAMA_OPENBLAS=1 LLAMA_CLBLAST=1 LLAMA_CUBLAS=1 LLAMA_PORTABLE=1 LLAMA_ADD_CONDA_PATHS=1
2424

2525
if [[ $1 == "rebuild" ]]; then
2626
echo Rebuild complete, you can now try to launch Koboldcpp.
2727
elif [[ $1 == "dist" ]]; then
28-
bin/micromamba remove -r conda -n linux --force ocl-icd -y
29-
bin/micromamba run -r conda -n linux pyinstaller --noconfirm --onefile --collect-all customtkinter --add-data='./koboldcpp_default.so:.' --add-data='./koboldcpp_cublas.so:.' --add-data='./koboldcpp_vulkan.so:.' --add-data='./koboldcpp_openblas.so:.' --add-data='./koboldcpp_clblast.so:.' --add-data "./koboldcpp_failsafe.so:." --add-data "./koboldcpp_noavx2.so:." --add-data "./koboldcpp_clblast_noavx2.so:." --add-data "./koboldcpp_vulkan_noavx2.so:." --add-data "./koboldcpp_vulkan.so:." --add-data='./klite.embd:.' --add-data='./kcpp_docs.embd:.' --add-data='./kcpp_sdui.embd:.' --add-data='./taesd.embd:.' --add-data='./taesd_xl.embd:.' --add-data='./rwkv_vocab.embd:.' --add-data='./rwkv_world_vocab.embd:.' --clean --console koboldcpp.py -n "koboldcpp-linux-x64$KCPP_CUDAAPPEND"
30-
bin/micromamba run -r conda -n linux pyinstaller --noconfirm --onefile --collect-all customtkinter --add-data='./koboldcpp_default.so:.' --add-data='./koboldcpp_openblas.so:.' --add-data='./koboldcpp_vulkan.so:.' --add-data='./koboldcpp_clblast.so:.' --add-data "./koboldcpp_failsafe.so:." --add-data "./koboldcpp_noavx2.so:." --add-data "./koboldcpp_clblast_noavx2.so:." --add-data "./koboldcpp_vulkan_noavx2.so:." --add-data "./koboldcpp_vulkan.so:." --add-data='./klite.embd:.' --add-data='./kcpp_docs.embd:.' --add-data='./kcpp_sdui.embd:.' --add-data='./taesd.embd:.' --add-data='./taesd_xl.embd:.' --add-data='./rwkv_vocab.embd:.' --add-data='./rwkv_world_vocab.embd:.' --clean --console koboldcpp.py -n "koboldcpp-linux-x64-nocuda$KCPP_APPEND"
31-
bin/micromamba install -r conda -n linux ocl-icd -c conda-forge -y
28+
bin/micromamba remove --no-rc -r conda -p conda/envs/linux --force ocl-icd -y
29+
bin/micromamba run -r conda -p conda/envs/linux pyinstaller --noconfirm --onefile --collect-all customtkinter --add-data='./koboldcpp_default.so:.' --add-data='./koboldcpp_cublas.so:.' --add-data='./koboldcpp_vulkan.so:.' --add-data='./koboldcpp_openblas.so:.' --add-data='./koboldcpp_clblast.so:.' --add-data "./koboldcpp_failsafe.so:." --add-data "./koboldcpp_noavx2.so:." --add-data "./koboldcpp_clblast_noavx2.so:." --add-data "./koboldcpp_vulkan_noavx2.so:." --add-data "./koboldcpp_vulkan.so:." --add-data='./klite.embd:.' --add-data='./kcpp_docs.embd:.' --add-data='./kcpp_sdui.embd:.' --add-data='./taesd.embd:.' --add-data='./taesd_xl.embd:.' --add-data='./rwkv_vocab.embd:.' --add-data='./rwkv_world_vocab.embd:.' --clean --console koboldcpp.py -n "koboldcpp-linux-x64$KCPP_CUDAAPPEND"
30+
bin/micromamba run -r conda -p conda/envs/linux pyinstaller --noconfirm --onefile --collect-all customtkinter --add-data='./koboldcpp_default.so:.' --add-data='./koboldcpp_openblas.so:.' --add-data='./koboldcpp_vulkan.so:.' --add-data='./koboldcpp_clblast.so:.' --add-data "./koboldcpp_failsafe.so:." --add-data "./koboldcpp_noavx2.so:." --add-data "./koboldcpp_clblast_noavx2.so:." --add-data "./koboldcpp_vulkan_noavx2.so:." --add-data "./koboldcpp_vulkan.so:." --add-data='./klite.embd:.' --add-data='./kcpp_docs.embd:.' --add-data='./kcpp_sdui.embd:.' --add-data='./taesd.embd:.' --add-data='./taesd_xl.embd:.' --add-data='./rwkv_vocab.embd:.' --add-data='./rwkv_world_vocab.embd:.' --clean --console koboldcpp.py -n "koboldcpp-linux-x64-nocuda$KCPP_APPEND"
31+
bin/micromamba install --no-rc -r conda -p conda/envs/linux ocl-icd -c conda-forge -y
3232
else
33-
bin/micromamba run -r conda -n linux python koboldcpp.py $*
33+
bin/micromamba run -r conda -p conda/envs/linux python koboldcpp.py $*
3434
fi

0 commit comments

Comments
 (0)