dualscreen-mouse-utils
maintainer goeb
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The source is a tarball from archive.org, used because the original is 404; it's a legitimate project archive, and the checksums are verified, so the risk is low despite the non-standard 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 source is a tarball from archive.org, used because the original is 404; it's a legitimate project archive, and the checksums are verified, so the risk is low despite the non-standard 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:18
'https://web.archive.org/web/20150511070756/http://de.mcbf.net/~squisher/downloads/releases/dualscreen-mouse-utils-0.5.tar.gz'
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Stefan Göbel <aur —at— subtype —dot— de>
2
3
pkgname='dualscreen-mouse-utils'
4
pkgver='0.5'
5
pkgrel='2'
6
pkgdesc='Utilities for use with old-school dual head setups.'
7
arch=('i686' 'x86_64')
8
url='http://de.mcbf.net/david/dualscreenmouseutils/'
9
license=('GPL2' 'GPL3' 'LGPL3' 'CCPL:by-nc-sa')
10
depends=('libx11')
11
optdepends=(
12
'python-pyqt5: for mouse-wrapscreen-tray (system tray icon)'
13
'python-psutil: for mouse-wrapscreen-tray (system tray icon)'
14
)
15
source=(
16
# Original URL is 404, using archive.org's copy for now:
17
# "http://dsp.mcbf.net/releases/$pkgname-$pkgver.tar.gz"
18
'https://web.archive.org/web/20150511070756/http://de.mcbf.net/~squisher/downloads/releases/dualscreen-mouse-utils-0.5.tar.gz'
19
'01-mss-fix-args.diff'
20
'02-mws-inline.diff'
21
'03-mws-fix-args.diff'
22
'04-mws-sleep-arg.diff'
23
'mouse-wrapscreen-tray'
24
'mouse-wrapscreen-tray.desktop'
25
'README.icons'
26
'running.svg'
27
'stopped.svg'
28
)
29
sha256sums=(
30
'51c94b382e3b32ea8ccbcb3f2ef8972acc68329aec3c4fcaeaf7f55fda166303'
31
'3acd313147ff3a5ef029c570aff11d7f27e804917d7134cb240112981aa929a0'
32
'd27feddbb7ff6ad1d4d4bd8bd1a65984d9391c3d85ed0bbab8ce245228a8cf6d'
33
'caeab014dbca7d7aa1fcd977d98d552e0510615aa93e3eafe8c0dba29b747d82'
34
'b26110eb377dd8ec60b164cdd65f08c7459982d448ae66a7290bfb873c2c0be8'
35
'777da0954c757cf978a1a5bc0159032171d3bc186fb586f6f740dbe7c9f03baf'
36
'62dd5735d1c0fabef0421232a56645e1f46abbf36e9e398964ff0ffafce04267'
37
'9886a34df1babda6728699e9934444f6fb22a3a7f68fa31bcdf578cfb32c173a'
38
'7c2f799a89c799b82e888b9916ca0c24b49f24644ea8cf792d4b398819b46848'
39
'f343de71ebce7a842ec8ae191fc151e6c881791fe091abcbf46ef49f69819edf'
40
)
41
42
prepare() {
43
cd "$pkgname-$pkgver"
44
for diff in ../*.diff ; do
45
patch -uN -i "$diff" || return 1
46
done
47
}
48
49
build() {
50
cd "$pkgname-$pkgver"
51
CPPFLAGS="$CFLAGS -O2" make
52
}
53
54
package() {
55
56
install -d "$pkgdir"/usr/{bin,share/{{doc/,}dualscreen-mouse-utils,applications}}/
57
58
local _bin="$pkgdir/usr/bin" _shr="$pkgdir/usr/share" _doc="$pkgdir/usr/share/doc"
59
60
install -m 0755 mouse-wrapscreen-tray "$_bin/mouse-wrapscreen-tray"
61
install -m 0644 mouse-wrapscreen-tray.desktop "$_shr/applications/"
62
install -m 0644 README.icons "$_shr/dualscreen-mouse-utils/"
63
install -m 0644 {running,stopped}.svg "$_shr/dualscreen-mouse-utils/"
64
65
cd "$pkgname-$pkgver"
66
67
install -m 0755 -s mouse-{switch,wrap}screen "$_bin/"
68
install -m 0755 mouse-wrapscreen.sh "$_shr/dualscreen-mouse-utils/"
69
install -m 0644 README "$_doc/dualscreen-mouse-utils/"
70
71
}
72
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 |