blob: c7fe6a825ba84f6b71bc1db17bd09dbc74e798c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# # Maintainer: Orion-zhen <https://github.com/Orion-zhen>
# Contributor: txtsd <aur.archlinux@ihavea.quest>
pkgname=llama.cpp-vulkan
_pkgname=${pkgname%%-vulkan}
pkgver=b10705
pkgrel=2
pkgdesc="Port of Facebook's LLaMA model in C/C++ (with Vulkan GPU optimizations)"
arch=(x86_64 armv7h aarch64)
url='https://github.com/ggml-org/llama.cpp'
license=('MIT')
depends=(
curl
gcc-libs
glibc
python
vulkan-icd-loader
)
makedepends=(
cmake
git
nodejs
npm
shaderc
vulkan-headers
spirv-headers
)
optdepends=(
'python-numpy: needed for convert_hf_to_gguf.py'
'python-safetensors: needed for convert_hf_to_gguf.py'
'python-sentencepiece: needed for convert_hf_to_gguf.py'
'python-pytorch: needed for convert_hf_to_gguf.py'
'python-transformers: needed for convert_hf_to_gguf.py'
'python-gguf: needed for convert_hf_to_gguf.py'
)
provides=(${_pkgname} llama-cpp libggml ggml ggml-vulkan)
conflicts=(${_pkgname} llama-cpp libggml ggml ggml-vulkan stable-diffusion.cpp)
options=(lto !debug)
backup=("etc/conf.d/llama.cpp")
source=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/ggml-org/llama.cpp/archive/refs/tags/${pkgver}.tar.gz"
"https://raw.githubusercontent.com/Orion-zhen/aur-packages/refs/heads/main/assets/llama.cpp/llama.cpp.service"
"https://raw.githubusercontent.com/Orion-zhen/aur-packages/refs/heads/main/assets/llama.cpp/llama.cpp.conf"
"https://raw.githubusercontent.com/Orion-zhen/aur-packages/refs/heads/main/assets/llama.cpp/llama.cpp.sysusers"
"https://raw.githubusercontent.com/Orion-zhen/aur-packages/refs/heads/main/assets/llama.cpp/llama.cpp.tmpfiles"
)
sha256sums=('88b388d1970313f4bef517012beadb9b579741b37547f6b3fdbedfaf70bf8a9a'
'b481dcaa07d8b912b32066da4ee48341cb521852eb16d76a6cf7a8216402e101'
'bd43b307d55a74bc64b88d95e1f37d0b12ddd2935563fc893835a91e2b8c10b5'
'8349878d7e61819fe3da6e8a25c46c7dd66592c9a5736a7f66eb475c7a51068c'
'027600188395ed3d721ed6f32c6fa954138fb25212154ceeadc2ff16076b1194')
prepare() {
ln -sf "${_pkgname}-${pkgver}" llama.cpp
# Tailwind v4's oxide scanner walks up looking for the nearest .git to anchor
# .gitignore lookup. In AUR helpers (yay/paru) the parent .git is the AUR
# clone, whose .gitignore is `*` + an allowlist for PKGBUILD/.SRCINFO. That
# rule ignores tools/ui/src/lib/**/*.svelte, so Tailwind scans zero files and
# the built bundle.css ships without any utility classes. An empty .git in
# the extracted source tree stops the upward walk before that point.
mkdir -p "${_pkgname}/.git"
}
build() {
pushd "${_pkgname}/tools/ui"
npm ci
npm run build
popd
local _cmake_options=(
-B build
-S "${_pkgname}"
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX='/usr'
-DBUILD_SHARED_LIBS=ON
-DLLAMA_BUILD_TESTS=OFF
-DLLAMA_USE_SYSTEM_GGML=OFF
-DLLAMA_BUILD_WEBUI=ON
-DGGML_ALL_WARNINGS=OFF
-DGGML_ALL_WARNINGS_3RD_PARTY=OFF
-DGGML_BUILD_EXAMPLES=OFF
-DGGML_BUILD_TESTS=OFF
-DGGML_LTO=ON
-DGGML_RPC=ON
-DGGML_VULKAN=ON
-DGGML_CUDA_FA_ALL_QUANTS=ON
-DLLAMA_BUILD_NUMBER="${pkgver#b}" # 修正版本号
-Wno-dev
)
# 检查是否在 CI 环境中构建
if [ -n "$CI" ] && [ "$CI" != 0 ]; then
msg2 "CI = $CI detected, building universal package"
# 启用通用构建
_cmake_options+=(
-DGGML_BACKEND_DL=ON
-DGGML_CPU_ALL_VARIANTS=ON
-DGGML_NATIVE=OFF
# -DGGML_ZENDNN=ON
)
else
# 本地构建, 针对当前设备优化
_cmake_options+=(
-DGGML_NATIVE=ON
)
fi
# 允许用户自定义构建选项
if [[ -n "$LLAMA_BUILD_EXTRA_ARGS" ]]; then
msg2 "Applied custom CMake build args: $LLAMA_BUILD_EXTRA_ARGS"
_cmake_options+=($LLAMA_BUILD_EXTRA_ARGS)
fi
cmake "${_cmake_options[@]}"
cmake --build build -- -j $(nproc)
}
package() {
DESTDIR="${pkgdir}" cmake --install build
install -Dm644 "${_pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 "llama.cpp.conf" "${pkgdir}/etc/conf.d/llama.cpp"
install -Dm644 "llama.cpp.service" "${pkgdir}/usr/lib/systemd/system/llama.cpp.service"
install -Dm644 "llama.cpp.sysusers" "${pkgdir}/usr/lib/sysusers.d/llama.cpp.conf"
install -Dm644 "llama.cpp.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/llama.cpp.conf"
msg2 "llama.cpp.service is now available"
msg2 "llama-server arguments are in /etc/conf.d/llama.cpp"
}
|