meo-ai

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

Scan history

Scanned at (UTC)SeverityRules
2026-10-26 03:43:44 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