lix-git
maintainer Lucki
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The non-standard host hosts only game music data (a .zip file), which is non-executable and installed as static game content; the main source is from the official GitHub repository, and no remote code execution or supply-chain risks are present.
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 non-standard host hosts only game music data (a .zip file), which is non-executable and installed as static game content; the main source is from the official GitHub repository, and no remote code execution or supply-chain risks are present.
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:15
"$pkgname-music-1.1.zip::https://www.lixgame.com/dow/lix-music.zip")
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Lucki <https://aur.archlinux.org/account/Lucki>
2
# Contributor: Carl Reinke <mindless2112 gmail com>
3
# shellcheck shell=bash
4
# shellcheck disable=SC2034,SC2154
5
6
pkgname=lix-git
7
pkgver=0.10.21.r1712198474.629c7121
8
pkgrel=1
9
pkgdesc="An action-puzzle game inspired by Lemmings"
10
url="https://www.lixgame.com/"
11
license=('custom:CC0')
12
13
_pkgname=${pkgname%-git}
14
source=("$pkgname::git+https://github.com/SimonN/lix-unstable.git"
15
"$pkgname-music-1.1.zip::https://www.lixgame.com/dow/lix-music.zip")
16
sha512sums=('SKIP'
17
'280fd25a479ac8dd24475b014234270a12ab34edca7fb2f7ce4b768259111b1e7626d3ba37ac13d810f0653d23d7c9f212776e94d2c0b31a0de580864771ce9f')
18
19
arch=(
20
'i686'
21
'x86_64'
22
)
23
depends=(
24
allegro
25
d-runtime
26
enet
27
hicolor-icon-theme
28
)
29
makedepends=(
30
d-compiler
31
dub
32
git
33
jq
34
pkgconf # https://github.com/SimonN/LixD/issues/469#issuecomment-2174416422
35
)
36
provides=("$_pkgname")
37
conflicts=("$_pkgname")
38
39
pkgver() {
40
# https://wiki.archlinux.org/index.php/VCS_package_guidelines#Git
41
cd "$pkgname" || exit 1
42
(
43
set -o pipefail
44
45
# version with unix committer date to bypass git squashes
46
printf "%s.r%s.%s" \
47
"$(<src/net/version.d sed -rn 's/.*_gameVersion = Version\(([0-9]+), ([0-9]+), ([0-9]+)\).*/\1.\2.\3/p')" \
48
"$(git show -s --format=%ct HEAD)" \
49
"$(git rev-parse --short HEAD)"
50
)
51
}
52
53
prepare() {
54
cd "$pkgname" || exit 1
55
56
# Iterate thorugh the required packages and versions to fetch them in advance
57
# Read from dub.selections.json and print them as "package@version"
58
for line in $(jq -r '.versions | keys[] as $k | "\($k)@\(.[$k])"' <dub.selections.json); do
59
# Fetch each package at the required version
60
# Expected format is: package@version
61
dub fetch --cache=local "$line"
62
done
63
}
64
65
_build() {
66
_r=0
67
68
# 2022.02.26
69
# 15:22 <@SimonN> It's possible that it's already enough to raise the stack size in the current shell: ulimit -s 16384
70
# 15:22 <@SimonN> See also: https://github.com/ldc-developers/ldc/issues/3913
71
# 15:26 <@SimonN> Yes, very high chance that the following will fix/workaround: Execute "ulimit -s 16384" in the same shell that will then run dub. I.e., we double the stack size, assuming "ulimit -s" printed 8192 before; it does that for me in new shells.
72
ulimit -s 16384
73
74
dub "$@" \
75
`# Do not resolve missing dependencies before building` \
76
--nodeps \
77
`# ensure dub stays outside the users home directory:` \
78
--cache=local \
79
`# Runs multiple compiler instances in parallel, if possible:` \
80
--parallel \
81
`# Forces a recompilation even if the target is up to date:` \
82
--force \
83
`# force FHS compatibility:` \
84
--build=releaseXDG
85
}
86
87
build() {
88
cd "$pkgname" || exit 1
89
_build build
90
}
91
92
check() {
93
cd "$pkgname" || exit 1
94
_build test
95
}
96
97
package() {
98
cd "$pkgname" || exit 1
99
100
# install application entry
101
install -Dm644 \
102
`# SRCFILE:` \
103
"data/desktop/com.lixgame.Lix.desktop" \
104
`# DSTFILE:` \
105
"$pkgdir/usr/share/applications/$_pkgname.desktop"
106
107
# install application entry icon
108
install -Dm644 \
109
`# SRCFILE:` \
110
"data/images/${_pkgname}_logo.svg" \
111
`# DSTFILE:` \
112
"$pkgdir/usr/share/icons/hicolor/scalable/apps/$_pkgname.svg"
113
114
# install license text
115
install -Dm644 \
116
`# SRCFILE:` \
117
"doc/copying.txt" \
118
`# DSTFILE:` \
119
"$pkgdir/usr/share/licenses/$_pkgname/COPYING"
120
121
# install man page
122
install -Dm644 \
123
`# SRCFILE:` \
124
"doc/lix.6" \
125
`# DSTFILE:` \
126
"$pkgdir/usr/share/man/man6/lix.6"
127
128
# install binary
129
install -Dm755 \
130
`# SRCFILE:` \
131
"bin/$_pkgname" \
132
`# DSTFILE:` \
133
"$pkgdir/usr/bin/$_pkgname"
134
135
# remove unimportant files
136
# https://raw.githubusercontent.com/SimonN/LixD/master/doc/build/package.txt
137
rm -r "doc/build"
138
139
# https://lists.archlinux.org/pipermail/aur-general/2011-November/016777.html
140
# make directories
141
mkdir -p \
142
"$pkgdir/usr/share/$_pkgname" \
143
"$pkgdir/usr/share/doc/$_pkgname"
144
145
# copy documentary
146
cp -dpr --no-preserve=ownership \
147
`# SRCFILES:` \
148
"doc/." \
149
`# DSTDIR:` \
150
"$pkgdir/usr/share/doc/$_pkgname/"
151
152
# copy game files
153
cp -dpr --no-preserve=ownership \
154
`# SRCDIRS:` \
155
"data" \
156
"images" \
157
"levels" \
158
"$srcdir/music" \
159
`# DSTDIR:` \
160
"$pkgdir/usr/share/$_pkgname"
161
}
162
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 |