meo-ai-beta

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-dd5f6f64583af6146f34d072926b2b70169a8111
3pkgname=meo-ai-beta
4pkgver=0.1.0beta2
5pkgrel=8
6pkgdesc="Meo AI desktop app and headless AgentService (Beta channel)"
7arch=('x86_64')
8conflicts=('meo-ai')
9provides=('meo-ai=0.1.0beta2')
10url='https://github.com/QwQdoge/meo-ai'
11license=('GPL-3.0-or-later' 'MIT' 'BSD-3-Clause')
12depends=('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')
20makedepends=('cmake' 'ninja' 'qt6-tools' 'qt6-shadertools' 'meson' 'gettext'
21 'python-setuptools' 'python-wheel' 'nodejs' 'rust')
22optdepends=('meo-settings: manage Meo Account and device AI connections'
23 'python-pyaudio: microphone input'
24 'python-mcp: external MCP tools')
25options=('!debug')
26source=('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')
36sha256sums=('7f7ad44c8b47ed14d0b0a9794944bb9fc1981923e594be8c8b62d9b6c074ba03'
37 '330e2822261054e9cb41a802cd51f7b4e1b3696e335a8b10cd6d91552cc11e74'
38 '662ea995a58f4d1138128ae1f44a91bccd4ddb114419d04446cf165442b8217c'
39 'dd878f923e4dc2e4ee6a4482fc00a94a933888c2ceb51db131827939a26739af'
40 '3ecf2511b2bfac0296d6d4efe236e323d8989b779e0dcce281f2482ebdd560af'
41 'f38110e262126c355bfe4f5ebe10b38dac960a00f1c20ea5f89f638a36f92706'
42 'bf371809a8bf657ccb6fb2da8d7fc18fa1f86bc02b036e117cea193eb2a0631a'
43 '3701ee01a6c85f8b865a049c30ba0b4608858c803fe8e30d1d289fdbe89d0efe'
44 '44a864222633d3081113d1030615991c3dbba87239f6bbf59d91240f71a22e3e'
45 'ed1f6d2e806a4758a73be589754384cbadadc7e1a414c81a166fc9adf2d40c6d')
46noextract=('feedfinder2-0.0.4.tar.gz' 'newspaper3k-0.2.8-py3-none-any.whl' 'tinysegmenter-0.3.tar.gz')
47
48prepare() {
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
56build() {
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
76package() {
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)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