meo-ai-beta
LOW
maintainer Shekong
0 votes
scanned 2026-10-26 03:43:44.749651
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: MeoArch <https://github.com/QwQdoge>
2
_srcdir=meo-ai-dd5f6f64583af6146f34d072926b2b70169a8111
3
pkgname=meo-ai-beta
4
pkgver=0.1.0beta2
5
pkgrel=8
6
pkgdesc="Meo AI desktop app and headless AgentService (Beta channel)"
7
arch=('x86_64')
8
conflicts=('meo-ai')
9
provides=('meo-ai=0.1.0beta2')
10
url='https://github.com/QwQdoge/meo-ai'
11
license=('GPL-3.0-or-later' 'MIT' 'BSD-3-Clause')
12
depends=('meo-account' 'meoui-qml>=1.0.4beta3' 'qt6-base' 'qt6-declarative'
13
'python' 'python-pip' 'python-openai' 'python-gobject' 'python-cairo' 'python-aiohttp' 'python-requests'
14
'python-pillow' 'python-tiktoken' 'python-dbus-next'
15
'python-numpy' 'python-pydub' 'python-audioop-lts'
16
'python-beautifulsoup4' 'python-cssselect' 'python-feedparser'
17
'python-jieba' 'python-lxml' 'python-lxml-html-clean' 'python-nltk'
18
'python-dateutil' 'python-yaml' 'python-tldextract' 'python-six'
19
'gtk4' 'libadwaita' 'gtksourceview5' 'webkitgtk-6.0' 'vte4')
20
makedepends=('cmake' 'ninja' 'qt6-tools' 'qt6-shadertools' 'meson' 'gettext'
21
'python-setuptools' 'python-wheel' 'nodejs' 'rust')
22
optdepends=('meo-settings: manage Meo Account and device AI connections'
23
'python-pyaudio: microphone input'
24
'python-mcp: external MCP tools')
25
options=('!debug')
26
source=('meo-ai-dd5f6f64583af6146f34d072926b2b70169a8111.tar.gz::https://codeload.github.com/QwQdoge/meo-ai/tar.gz/dd5f6f64583af6146f34d072926b2b70169a8111'
27
'org.meo.AI.desktop'
28
'newspaper3k-LICENSE'
29
'feedfinder2-LICENSE'
30
'tinysegmenter-LICENSE'
31
'runtime-sources.json'
32
'MeoUI-b8ed876b66a5e69fd4986385c734b1a83c567be7.tar.gz::https://codeload.github.com/QwQdoge/MeoUI/tar.gz/b8ed876b66a5e69fd4986385c734b1a83c567be7'
33
'feedfinder2-0.0.4.tar.gz::https://files.pythonhosted.org/packages/35/82/1251fefec3bb4b03fd966c7e7f7a41c9fc2bb00d823a34c13f847fd61406/feedfinder2-0.0.4.tar.gz'
34
'newspaper3k-0.2.8-py3-none-any.whl::https://files.pythonhosted.org/packages/d7/b9/51afecb35bb61b188a4b44868001de348a0e8134b4dfa00ffc191567c4b9/newspaper3k-0.2.8-py3-none-any.whl'
35
'tinysegmenter-0.3.tar.gz::https://files.pythonhosted.org/packages/17/82/86982e4b6d16e4febc79c2a1d68ee3b707e8a020c5d2bc4af8052d0f136a/tinysegmenter-0.3.tar.gz')
36
sha256sums=('7f7ad44c8b47ed14d0b0a9794944bb9fc1981923e594be8c8b62d9b6c074ba03'
37
'330e2822261054e9cb41a802cd51f7b4e1b3696e335a8b10cd6d91552cc11e74'
38
'662ea995a58f4d1138128ae1f44a91bccd4ddb114419d04446cf165442b8217c'
39
'dd878f923e4dc2e4ee6a4482fc00a94a933888c2ceb51db131827939a26739af'
40
'3ecf2511b2bfac0296d6d4efe236e323d8989b779e0dcce281f2482ebdd560af'
41
'f38110e262126c355bfe4f5ebe10b38dac960a00f1c20ea5f89f638a36f92706'
42
'bf371809a8bf657ccb6fb2da8d7fc18fa1f86bc02b036e117cea193eb2a0631a'
43
'3701ee01a6c85f8b865a049c30ba0b4608858c803fe8e30d1d289fdbe89d0efe'
44
'44a864222633d3081113d1030615991c3dbba87239f6bbf59d91240f71a22e3e'
45
'ed1f6d2e806a4758a73be589754384cbadadc7e1a414c81a166fc9adf2d40c6d')
46
noextract=('feedfinder2-0.0.4.tar.gz' 'newspaper3k-0.2.8-py3-none-any.whl' 'tinysegmenter-0.3.tar.gz')
47
48
prepare() {
49
ln -sfn "$srcdir/MeoUI-b8ed876b66a5e69fd4986385c734b1a83c567be7" "$srcdir/meoui"
50
mkdir -p "$srcdir/third-party"
51
cp -f "$srcdir/feedfinder2-0.0.4.tar.gz" "$srcdir/third-party/feedfinder2-0.0.4.tar.gz"
52
cp -f "$srcdir/newspaper3k-0.2.8-py3-none-any.whl" "$srcdir/third-party/newspaper3k-0.2.8-py3-none-any.whl"
53
cp -f "$srcdir/tinysegmenter-0.3.tar.gz" "$srcdir/third-party/tinysegmenter-0.3.tar.gz"
54
}
55
56
build() {
57
cmake -S "$srcdir/$_srcdir/meo" -B native-build -G Ninja \
58
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
59
-DMEO_UI_ROOT="$srcdir/meoui" -DBUILD_TESTING=OFF
60
cmake --build native-build --parallel 2
61
meson setup engine-build "$srcdir/$_srcdir" --prefix=/usr --libdir=lib -Dprofile=release
62
meson compile -C engine-build
63
# The cloud desktop app (desktop-rs) pins its crates, including the qtbridge git
64
# revision, in Cargo.lock. Fetch them here: release builds use --noextract, which
65
# skips prepare(); the compile itself then runs offline.
66
cargo fetch --locked --target "$(rustc -vV | sed -n 's/^host: //p')" \
67
--manifest-path "$srcdir/$_srcdir/meo/desktop-rs/Cargo.toml"
68
# rustc needs a larger stack for the shared core's large view builders in release mode.
69
# qtbridge compiles its C++ bridge through cc; makepkg's -flto would make that GCC LTO
70
# bitcode the Rust link step cannot read (undefined cxxbridge symbols), so not here.
71
CFLAGS="${CFLAGS//-flto=auto/}" CXXFLAGS="${CXXFLAGS//-flto=auto/}" LDFLAGS="${LDFLAGS//-flto=auto/}" \
72
RUST_MIN_STACK=33554432 CARGO_TARGET_DIR="$srcdir/cargo-target" \
73
cargo build --frozen --release -j 2 --manifest-path "$srcdir/$_srcdir/meo/desktop-rs/Cargo.toml"
74
}
75
76
package() {
77
# Do not install the add_subdirectory MeoUI dependency a second time.
78
DESTDIR="$pkgdir" cmake -DCMAKE_INSTALL_LOCAL_ONLY=TRUE -P native-build/cmake_install.cmake
79
DESTDIR="$pkgdir" meson install -C engine-build --no-rebuild
80
# These three pure-Python modules are absent from Arch's repositories.
81
# Stage their immutable upstream hashes, build offline, and keep them
82
# private to this application. All other dependencies are pacman-owned.
83
PIP_NO_INDEX=1 python -m pip install --no-deps --no-build-isolation \
84
--no-compile --target "$pkgdir/usr/share/newelle" \
85
"$srcdir/third-party/"*.whl "$srcdir/third-party/"*.tar.gz
86
# The inherited Meson launcher mode is owner-executable only (0544).
87
# Packaged launchers must also be executable by ordinary desktop users.
88
chmod 755 "$pkgdir/usr/bin/newelle" "$pkgdir/usr/bin/meo-agent-service" \
89
"$pkgdir/usr/bin/meo-agentd" "$pkgdir/usr/bin/meo-connect-device"
90
# The headless compatibility adapter imports src.*, while Meson installs
91
# the inherited engine under newelle/. Both names refer to one engine.
92
ln -s newelle "$pkgdir/usr/share/newelle/src"
93
# Meo AI is the desktop app on the shared Rust core (desktop-rs); it loads its QML
94
# from ../share/meo-ai-desktop/qml. It is the only Meo AI launcher and keeps the
95
# org.meo.AI id, so existing pins open it. The older native app and the Newelle
96
# engine stay installed without launchers: the live installer still runs
97
# `meo-ai --live-recovery`, and AgentService uses the engine.
98
install -Dm755 "$srcdir/cargo-target/release/meo-ai-desktop" "$pkgdir/usr/bin/meo-ai-desktop"
99
install -Dm644 -t "$pkgdir/usr/share/meo-ai-desktop/qml" "$srcdir/$_srcdir/meo/desktop-rs/qml/"*.qml
100
rm -f "$pkgdir/usr/share/applications/org.meo.MeoAI.desktop" \
101
"$pkgdir/usr/share/applications/io.github.qwersyk.Newelle.desktop"
102
install -Dm644 "$srcdir/org.meo.AI.desktop" "$pkgdir/usr/share/applications/org.meo.AI.desktop"
103
install -Dm644 "$srcdir/$_srcdir/COPYING" "$pkgdir/usr/share/licenses/$pkgname/COPYING"
104
for dependency in newspaper3k feedfinder2 tinysegmenter; do
105
install -Dm644 "$startdir/$dependency-LICENSE" \
106
"$pkgdir/usr/share/licenses/$pkgname/$dependency-LICENSE"
107
done
108
install -Dm644 "$startdir/runtime-sources.json" \
109
"$pkgdir/usr/share/licenses/$pkgname/runtime-sources.json"
110
# User services are shipped disabled; credentials and cloud deployment
111
# configuration are never part of this desktop package.
112
}
113
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-26 03:43:44 | Low | 1 |