kimodo.cpp
LOW
maintainer ExplodingDragon
0 votes
scanned 2026-09-24 03:41:46.078749
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: ExplodingDragon <ExplodingFKL@gmail.com>
2
3
pkgname=kimodo.cpp
4
pkgver=5679ff1
5
pkgrel=1
6
pkgdesc='GGML/C++ implementation of NVIDIA Kimodo text-to-motion with Vulkan and web demo'
7
arch=('x86_64')
8
url='https://github.com/localai-org/kimodo.cpp'
9
license=('Apache-2.0')
10
11
_commit='5679ff19ba0a522c0b0516e9a9d402fe1af2c027'
12
_ggml_commit='8c63e70982c95ceb862e3a1073a2c1beef75d60a'
13
14
# The Vulkan backend is built in, so the loader is a runtime dependency even
15
# when KIMODO_BACKEND=cpu is selected at runtime.
16
depends=(
17
'bash'
18
'glibc'
19
'libgcc'
20
'libstdc++'
21
'vulkan-icd-loader'
22
)
23
makedepends=(
24
'cmake'
25
'git'
26
'go>=1.26'
27
'ninja'
28
'patchelf'
29
'shaderc'
30
'vulkan-headers'
31
'spirv-headers'
32
)
33
optdepends=(
34
'python-huggingface-hub: download verified GGUF model bundles with kimodo-download-weights'
35
'vulkan-radeon: Vulkan driver for AMD GPUs'
36
'vulkan-intel: Vulkan driver for Intel GPUs'
37
'nvidia-utils: Vulkan driver for NVIDIA GPUs'
38
)
39
40
install='kimodo.cpp.install'
41
backup=('etc/conf.d/kimodo.cpp')
42
43
source=(
44
"kimodo.cpp::git+https://github.com/localai-org/kimodo.cpp.git#commit=${_commit}"
45
"ggml::git+https://github.com/ggml-org/ggml.git#commit=${_ggml_commit}"
46
'kimodo.cpp.service'
47
'kimodo.cpp.conf'
48
'kimodo.cpp.sysusers'
49
'kimodo.cpp.tmpfiles'
50
'kimodo-service'
51
'0001-demo-respect-runtime-env.patch'
52
)
53
sha256sums=(
54
'SKIP'
55
'SKIP'
56
'8fa14bfd90c684803aaa6be9afc32d763306b94878b87e328faef60f5ea6f3fe'
57
'28c6034931aeea8706b2f4e28ca60daf96a78f7508d2fa2a95e9a03488a57327'
58
'3264a21bb83e0a15480f5a0fda6895c25543e0d61446ea82cc919c508f642563'
59
'4ef40ef2849ce8ec9a1263c1d4f1b3e71160c3a8aecf2c753d266e85c125a0d6'
60
'10f3ba496301dcfed6b1f218069028c5a8425f0b870537d671cf250cb0a2463f'
61
'324c32702687d888c6c8ab594b73f52aa7eacbcae0fd5e8a74fc2fc863d5089e'
62
)
63
64
prepare() {
65
local _src="${srcdir}/kimodo.cpp"
66
67
# makepkg does not recursively fetch Git submodules for VCS sources. Fetch
68
# GGML as its own commit-pinned Git source, then attach it at the upstream
69
# submodule path. All network access therefore stays in source retrieval.
70
rm -rf "${_src}/ggml"
71
ln -s "${srcdir}/ggml" "${_src}/ggml"
72
73
cd "${_src}"
74
patch -Np1 -i "${srcdir}/0001-demo-respect-runtime-env.patch"
75
}
76
build() {
77
local _src="${srcdir}/kimodo.cpp"
78
cd "${_src}"
79
80
cmake -S . -B build/release -G Ninja \
81
-DCMAKE_BUILD_TYPE=Release \
82
-DBUILD_SHARED_LIBS=ON \
83
-DBUILD_TESTING=OFF \
84
-DKIMODO_BUILD_TESTS=OFF \
85
-DKIMODO_ENABLE_VULKAN=ON
86
cmake --build build/release
87
88
# The demo is a standalone Go HTTP server which launches kmd-generate.
89
go build -buildmode=pie -trimpath -buildvcs=false \
90
-ldflags='-s -w' \
91
-o build/release/kimodo-demo ./demo
92
}
93
94
package() {
95
local _src="${srcdir}/kimodo.cpp"
96
cd "${_src}"
97
98
local _bindir='build/release'
99
local _private_libdir="${pkgdir}/usr/lib/${pkgname}"
100
local _tools=(
101
kmd-generate
102
kmd-encode
103
kmd-inspect
104
kmd-pack-text
105
kmd-quantize-text
106
kmd-sample-embedding
107
kmd-sample-fixture
108
)
109
110
local tool
111
for tool in "${_tools[@]}"; do
112
install -Dm755 "${_bindir}/${tool}" "${pkgdir}/usr/bin/${tool}"
113
done
114
install -Dm755 "${_bindir}/kimodo-demo" "${pkgdir}/usr/bin/kimodo-demo"
115
116
# Upstream currently has no install() rules. Keep its pinned GGML private to
117
# kimodo.cpp instead of colliding with Arch's independently packaged GGML.
118
install -d "${_private_libdir}"
119
install -Dm755 "${_bindir}/libkimodo.so" "${_private_libdir}/libkimodo.so"
120
121
local lib
122
while IFS= read -r -d '' lib; do
123
cp -a "${lib}" "${_private_libdir}/"
124
done < <(find "${_bindir}/ggml" \( -type f -o -type l \) -name 'libggml*.so*' -print0)
125
126
# Native executables resolve only the exact private GGML/libkimodo build.
127
for tool in "${_tools[@]}"; do
128
patchelf --set-rpath '$ORIGIN/../lib/kimodo.cpp' "${pkgdir}/usr/bin/${tool}"
129
done
130
while IFS= read -r -d '' lib; do
131
[[ -L "${lib}" ]] || patchelf --set-rpath '$ORIGIN' "${lib}"
132
done < <(find "${_private_libdir}" \( -type f -o -type l \) -name '*.so*' -print0)
133
134
install -d "${pkgdir}/usr/include/kimodo"
135
install -m644 include/kimodo/* "${pkgdir}/usr/include/kimodo/"
136
137
# Keep the upstream downloader available, but leave model weights outside the
138
# package because of their size and separate model licences.
139
install -Dm755 scripts/download_gguf_weights.sh \
140
"${pkgdir}/usr/bin/kimodo-download-weights"
141
142
install -Dm755 "${srcdir}/kimodo-service" \
143
"${pkgdir}/usr/lib/${pkgname}/kimodo-service"
144
install -Dm644 "${srcdir}/kimodo.cpp.service" \
145
"${pkgdir}/usr/lib/systemd/system/kimodo.cpp.service"
146
install -Dm644 "${srcdir}/kimodo.cpp.conf" \
147
"${pkgdir}/etc/conf.d/kimodo.cpp"
148
install -Dm644 "${srcdir}/kimodo.cpp.sysusers" \
149
"${pkgdir}/usr/lib/sysusers.d/kimodo.cpp.conf"
150
install -Dm644 "${srcdir}/kimodo.cpp.tmpfiles" \
151
"${pkgdir}/usr/lib/tmpfiles.d/kimodo.cpp.conf"
152
153
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
154
install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/${pkgname}/NOTICE"
155
install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
156
}
157
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-24 03:41:46 | Low | 1 |