kimodo.cpp

LOW
maintainer ExplodingDragon 0 votes scanned 2026-09-24 03:41:46.078749
View on AUR
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
3pkgname=kimodo.cpp
4pkgver=5679ff1
5pkgrel=1
6pkgdesc='GGML/C++ implementation of NVIDIA Kimodo text-to-motion with Vulkan and web demo'
7arch=('x86_64')
8url='https://github.com/localai-org/kimodo.cpp'
9license=('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.
16depends=(
17 'bash'
18 'glibc'
19 'libgcc'
20 'libstdc++'
21 'vulkan-icd-loader'
22)
23makedepends=(
24 'cmake'
25 'git'
26 'go>=1.26'
27 'ninja'
28 'patchelf'
29 'shaderc'
30 'vulkan-headers'
31 'spirv-headers'
32)
33optdepends=(
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
40install='kimodo.cpp.install'
41backup=('etc/conf.d/kimodo.cpp')
42
43source=(
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)
53sha256sums=(
54 'SKIP'
55 'SKIP'
56 '8fa14bfd90c684803aaa6be9afc32d763306b94878b87e328faef60f5ea6f3fe'
57 '28c6034931aeea8706b2f4e28ca60daf96a78f7508d2fa2a95e9a03488a57327'
58 '3264a21bb83e0a15480f5a0fda6895c25543e0d61446ea82cc919c508f642563'
59 '4ef40ef2849ce8ec9a1263c1d4f1b3e71160c3a8aecf2c753d266e85c125a0d6'
60 '10f3ba496301dcfed6b1f218069028c5a8425f0b870537d671cf250cb0a2463f'
61 '324c32702687d888c6c8ab594b73f52aa7eacbcae0fd5e8a74fc2fc863d5089e'
62)
63
64prepare() {
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}
76build() {
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
94package() {
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)SeverityRules
2026-09-24 03:41:46 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion