mma
maintainer jkl
· 17 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads a source tarball from the project's official website (mellowood.ca), which hosts the project's own release; the tarball contains Python scripts and data files that are installed directly, with no obfuscation or remote code execution, making it a standard build from project-owned infrastructure despite the non-whitelisted host.
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 package downloads a source tarball from the project's official website (mellowood.ca), which hosts the project's own release; the tarball contains Python scripts and data files that are installed directly, with no obfuscation or remote code execution, making it a standard build from project-owned infrastructure despite the non-whitelisted host.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:17
source=("http://www.mellowood.ca/mma/mma-bin-$pkgver.tar.gz"
PKGBUILD
1 offending line(s) highlighted
1
# $Id $
2
# Maintainer: John K. Luebs <jkl@johnluebs.com>
3
# Contributor: Eric Le Bras <eric.lebras@gmail.com>
4
# Contributor: Uwe Koloska <kolewu@koloro.de>
5
6
pkgname=mma
7
pkgver=25.05.0
8
pkgrel=1
9
pkgdesc="Musical MIDI Accompaniment (MMA) is an accompaniment generator"
10
url="http://www.mellowood.ca/mma/"
11
depends=('python')
12
optdepends=('timidity++: Synthesize MIDI files')
13
license=('GPL-2.0-or-later')
14
arch=('any')
15
install=mma.install
16
DLAGENTS=('http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 --user-agent Mozilla/4.0 -o %o %u')
17
source=("http://www.mellowood.ca/mma/mma-bin-$pkgver.tar.gz"
18
mmarc)
19
sha1sums=('1af05064384c5c7e7d24b163639a414227d3ef6f'
20
'3c03107c2a1b380f66ed68458d9b9def8371c0f6')
21
options=(!strip)
22
backup=(etc/mmarc)
23
24
package() {
25
cd "$srcdir/$pkgname-bin-$pkgver"
26
27
mkdir -p "$pkgdir"/usr/{bin,share/mma,share/man/man1,share/man/man8}
28
mkdir -p "$pkgdir"/etc
29
30
cp -p mma.py "$pkgdir"/usr/bin/mma
31
cp -p mma-gb "$pkgdir"/usr/bin/mma-gb
32
cp -p mma-libdoc "$pkgdir"/usr/bin/mma-libdoc
33
cp -p mma-renum "$pkgdir"/usr/bin/mma-renum
34
cp -p mma-splitrec "$pkgdir"/usr/bin/mma-splitrec
35
cp -p util/mma-mnx.py "$pkgdir"/usr/bin/mma-mnx
36
cp -p util/mma-rm2std.py "$pkgdir"/usr/bin/mma-rm2std
37
cp -p util/mmatabs.py "$pkgdir"/usr/bin/mmatabs
38
cp -p util/mup2mma.py "$pkgdir"/usr/bin/mup2mma
39
cp -p util/pg2mma.py "$pkgdir"/usr/bin/pg2mma
40
cp -p util/synthsplit.py "$pkgdir"/usr/bin/mma-synthsplit
41
cp -pr {docs,egs,includes,lib,MMA,plugins,text} "$pkgdir"/usr/share/mma
42
43
cp -p util/README.* "$pkgdir"/usr/share/mma/docs
44
mv "$pkgdir"/usr/share/mma/docs/man/mma-libdoc.8 "$pkgdir"/usr/share/man/man8
45
mv "$pkgdir"/usr/share/mma/docs/man/mma-renum.1 "$pkgdir"/usr/share/man/man1
46
mv "$pkgdir"/usr/share/mma/docs/man/mma.1 "$pkgdir"/usr/share/man/man1
47
mv "$pkgdir"/usr/share/mma/docs/man/mma-gb.1 "$pkgdir"/usr/share/man/man1
48
rm -rf "$pkgdir"/usr/share/mma/docs/man
49
cp -p "$srcdir"/mmarc "$pkgdir"/etc
50
}
51
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 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 |