mycroft-core

maintainer robertfoster · 30 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The pip install commands are part of building the project from its own source, installing declared dependencies from requirements files in the official source tarball; this is normal for Python packages and not a supply-chain risk.

Triggered rules

LOW AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The pip install commands are part of building the project from its own source, installing declared dependencies from requirements files in the official source tarball; this is normal for Python packages and not a supply-chain risk.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM pip install of an external package pip_install_external

`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.

  • PKGBUILD:64 pip install -r requirements/requirements.txt
  • PKGBUILD:65 pip install -r requirements/extra-audiobackend.txt
  • PKGBUILD:66 pip install -r requirements/extra-stt.txt

PKGBUILD

3 offending line(s) highlighted
1# Maintainer: robertfoster
2# Contributor: Thorben Guenther <echo YWRtaW5AeGVucm94Lm5ldAo= | base64 -d>
3
4pkgname=mycroft-core
5pkgver=21.2.2
6pkgrel=2
7pkgdesc="The Mycroft Artificial Intelligence platform."
8arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
9url='https://github.com/MycroftAI/mycroft-core'
10license=('Apache')
11depends=('python'
12 'python-gobject'
13 'libffi'
14 'swig'
15 'portaudio'
16 'mimic1'
17 'mpg123'
18 'screen'
19 'flac'
20 'curl'
21 'icu'
22 'libjpeg-turbo'
23 'jq'
24 'pulseaudio'
25 'pulseaudio-alsa'
26 'fann')
27makedepends=('git' 'sudo' 'python-pip' 'python-setuptools' 'python-virtualenv' 'sudo')
28install=mycroft-core.install
29source=("${url}/archive/release/v${pkgver}.tar.gz"
30 "mycroft.tmpfiles"
31 "mycroft.sysusers"
32 "mycroft.service"
33 "client.conf"
34 "mycroft.sh"
35 "mycroft.csh"
36)
37
38prepare() {
39 cd "$srcdir/$pkgname-release-v$pkgver"
40 sed -i 's/^check-dependencies$/#check-dependencies/g' start-mycroft.sh
41 sed -i 's/change_ownership$/:/g' scripts/prepare-msm.sh
42}
43
44package() {
45 mkdir -p "${pkgdir}/usr/share/"
46 cp -R "mycroft-core-release-v${pkgver}" "${pkgdir}/usr/share/mycroft-core"
47
48 # Place a link to mimic where mycroft is expecting it
49 mkdir -p "${pkgdir}/usr/share/mycroft-core/mimic/bin"
50 ln -s /usr/bin/mimic "${pkgdir}/usr/share/mycroft-core/mimic/bin/mimic"
51
52 # Set permissions
53 chmod -R 755 "${pkgdir}/usr/share/mycroft-core"
54
55 # systemd
56 install -D -m644 "${srcdir}/mycroft.service" -t "${pkgdir}/usr/lib/systemd/system"
57 install -D -m644 "${srcdir}/mycroft.sysusers" "${pkgdir}/usr/lib/sysusers.d/mycroft.conf"
58 install -D -m644 "${srcdir}/mycroft.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/mycroft.conf"
59
60 # Virtualenv
61 cd "$pkgdir/usr/share/mycroft-core"
62 virtualenv .venv
63 source .venv/bin/activate
64 pip install -r requirements/requirements.txt
65 pip install -r requirements/extra-audiobackend.txt
66 pip install -r requirements/extra-stt.txt
67
68 # Fix Virtualenv
69 sed -i 's/^VIRTUAL_ENV=.*/VIRTUAL_ENV="\/usr\/share\/mycroft-core\/.venv"/g' .venv/bin/activate
70 pathtoreplace=$(echo $pkgdir | sed 's:/:\\\/:g')
71 rm .venv/bin/activate.{fish,csh}
72
73 # Cleanup
74 find . -name "*.py[co]" -o -name __pycache__ -exec rm -rf {} +
75 rm -rf "$pkgdir/usr/share/mycroft-core/test"
76 sed -i "s/$pathtoreplace//g" "$pkgdir"/usr/share/mycroft-core/.venv/bin/*
77
78 # Use a sane default editor
79 sed -i "s/sensible-editor/vi/g" "$pkgdir"/usr/share/mycroft-core/bin/mycroft-config
80 # Pulseaudio Client configuration
81 install -Dm644 "${srcdir}/client.conf" \
82 "${pkgdir}/var/lib/mycroft/.config/pulse/client.conf"
83
84 # Set environmental variable for binary usage
85 install -Dm644 "${srcdir}/mycroft.sh" \
86 "${pkgdir}/etc/profile.d/mycroft.sh"
87 install -Dm644 "${srcdir}/mycroft.csh" \
88 "${pkgdir}/etc/profile.d/mycroft.csh"
89}
90
91sha256sums=('3748b2422691bbfdf3e31e8a61ebf0eb3dfd5dd0f6103f0c501005437d83c728'
92 'cbc90e2a3308619dbfe1ccf417b7a41d15fac13c7ae8124b90b82a4f09aa8485'
93 '658ab08f0db3a2000d762c6a0a0bfd3a79d8375cf5a70f373ed097aa40f51278'
94 '48f7bf2f24061bfbc58318f03098059bc8f292b5ae0f4a2cf5f90915587f74ad'
95 '87fb0adc4f3ab15e9d71c4d4bfb799d50f5d14b3962e8eb4fd1de1e7d86486cf'
96 'ec42c92425e016e747da0e61406754db0cabdccd5c6325ab9e8f6374a128263a'
97 'c2199a1f1fe50c0178fa722f0bf6f674d29e86f0edef90895e28aa9b329a8e34')
98

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

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

0 / 4000
Your suggestion