universe-desktop-git
LOW
maintainer ilyasturki
0 votes
base
universe-git
scanned 2026-09-28 09:20:32.001266
Why flagged
The package builds from a public git repository and includes a single prebuilt EXE stub for GOG integration, which is checksummed and used as static data; no remote code execution or obfuscated payloads are present.
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.
Low
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 95%): The package builds from a public git repository and includes a single prebuilt EXE stub for GOG integration, which is checksummed and used as static data; no remote code execution or obfuscated payloads are present.
PKGBUILD
1
# Maintainer: Ilyas Turki <turki.ilyass@gmail.com>
2
pkgbase=universe-git
3
pkgname=(universe-git universe-desktop-git)
4
pkgver=0.0.6.r160.g030024d
5
pkgrel=1
6
pkgdesc='Gamepad-first game launcher: a Rust core, a PySide6 UI, games inside gamescope (latest commit)'
7
arch=('x86_64')
8
url='https://github.com/ilyasturki/universe'
9
license=('MIT')
10
makedepends=(
11
'blueprint-compiler'
12
'cargo'
13
'git'
14
'glib2-devel'
15
'gtk4'
16
'libadwaita'
17
'maturin'
18
'python-build'
19
'python-installer'
20
'python-setuptools'
21
'scdoc'
22
)
23
checkdepends=('tzdata')
24
# makepkg's -flto C objects (ring's) are GCC bitcode that rust-lld cannot link; Cargo.toml strips, so a debug package would be empty
25
options=('!lto' '!debug')
26
# the stub is the flake's galaxyServiceStub
27
source=(
28
"universe::git+$url.git"
29
'GalaxyCommunication-comet-0.3.2.exe::https://github.com/imLinguin/comet/releases/download/v0.3.2/GalaxyCommunication-dummy.exe'
30
)
31
sha256sums=('SKIP'
32
'c7695267da363a861af99db95cafe68b732ae743e5830b4feea1bc7ee745f99d')
33
34
pkgver() {
35
cd universe
36
git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
37
}
38
39
prepare() {
40
cd universe
41
export RUSTUP_TOOLCHAIN=stable
42
# maturin's cargo metadata resolves every platform's crates, not only the host's
43
cargo fetch --locked
44
}
45
46
build() {
47
cd universe
48
export RUSTUP_TOOLCHAIN=stable CARGO_TARGET_DIR=target
49
cargo build --frozen --release -p universe -p universe-desktop
50
maturin build --frozen --release --compatibility linux -m crates/universe-py/Cargo.toml -o dist
51
python -m build --wheel --no-isolation --outdir dist ui
52
target/release/universe __generate gen
53
scdoc < ui/universe-ui.1.scd > gen/man/universe-ui.1
54
scdoc < crates/universe-desktop/universe-desktop.1.scd > gen/universe-desktop.1
55
}
56
57
check() {
58
cd universe
59
export RUSTUP_TOOLCHAIN=stable CARGO_TARGET_DIR=target
60
# the journal tests expect Paris local time, as the flake's check does
61
TZ=Europe/Paris cargo test --frozen -p universe -p universe-desktop
62
}
63
64
package_universe-git() {
65
depends=(
66
'libgcc'
67
'glibc'
68
'hicolor-icon-theme'
69
'python'
70
'pyside6>=6.11'
71
'python-pysdl2'
72
'python-qrcode'
73
'python-xkbcommon'
74
'qt6-5compat'
75
'qt6-declarative'
76
'qt6-imageformats'
77
'qt6-multimedia'
78
'qt6-svg'
79
'qt6-wayland'
80
'sdl2'
81
'systemd'
82
)
83
optdepends=(
84
'gamescope: games run inside it'
85
'mangohud: the frame rate limit and the in-game HUD'
86
"lib32-mangohud: the HUD in 32-bit games, Proton's included"
87
'umu-launcher: Proton launches; fetched on first use when missing'
88
'heroic-gogdl: the GOG source; fetched on first use when missing'
89
'legendary: the Epic Games source; fetched on first use when missing'
90
'butler: the itch.io source; fetched on first use when missing'
91
'steam: the Steam source'
92
"gpu-screen-recorder: the capture module's recordings"
93
"ffmpeg: the capture module's thumbnails and cuts"
94
'trash-cli: recordings deleted to the trash'
95
"game-devices-udev: /dev/uinput for the controller's key macros"
96
'grim: screenshots on sway, hyprland and niri'
97
'spectacle: screenshots on KDE Plasma'
98
'universe-desktop-git: the library in a GTK app for mouse and keyboard'
99
)
100
provides=("universe=$pkgver")
101
conflicts=('universe')
102
cd universe
103
python -m installer --destdir="$pkgdir" dist/*.whl
104
install -Dm755 target/release/universe -t "$pkgdir/usr/bin"
105
for kind in modules sources; do
106
install -d "$pkgdir/usr/share/universe/$kind"
107
cp -r "$kind/." "$pkgdir/usr/share/universe/$kind"
108
rm -rf "$pkgdir/usr/share/universe/$kind"/*/tests
109
done
110
install -Dm644 "$srcdir/GalaxyCommunication-comet-0.3.2.exe" "$pkgdir/usr/share/universe/sources/gog/GalaxyCommunication.exe"
111
install -Dm644 extension/metadata.json extension/extension.js -t "$pkgdir/usr/share/gnome-shell/extensions/universe@ilyasturki.github.io"
112
install -Dm644 gen/man/*.1 -t "$pkgdir/usr/share/man/man1"
113
install -Dm644 gen/universe.fish "$pkgdir/usr/share/fish/vendor_completions.d/universe.fish"
114
install -Dm644 gen/universe.bash "$pkgdir/usr/share/bash-completion/completions/universe"
115
install -Dm644 gen/_universe "$pkgdir/usr/share/zsh/site-functions/_universe"
116
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
117
install -Dm644 ui/universe-ui.desktop -t "$pkgdir/usr/share/applications"
118
install -Dm644 ui/icons/hicolor/scalable/apps/universe-ui.svg -t "$pkgdir/usr/share/icons/hicolor/scalable/apps"
119
install -Dm644 ui/icons/hicolor/symbolic/apps/universe-ui-symbolic.svg -t "$pkgdir/usr/share/icons/hicolor/symbolic/apps"
120
}
121
122
package_universe-desktop-git() {
123
pkgdesc='The Universe game library for mouse and keyboard: a GTK 4 and libadwaita app (latest commit)'
124
depends=(
125
'libgcc'
126
'glibc'
127
'gst-plugins-base'
128
'gst-plugins-good'
129
'gtk4>=1:4.22'
130
'hicolor-icon-theme'
131
'libadwaita>=1:1.9'
132
"universe=$pkgver"
133
)
134
optdepends=(
135
'gst-libav: recordings played in the app (H.264, HEVC)'
136
'gst-plugins-bad: recordings played in the app (AV1, VA-API)'
137
)
138
provides=("universe-desktop=$pkgver")
139
conflicts=('universe-desktop')
140
cd universe
141
install -Dm755 target/release/universe-desktop -t "$pkgdir/usr/bin"
142
local data=crates/universe-desktop/data id=io.github.ilyasturki.UniverseDesktop
143
install -Dm644 "$data/$id.desktop" -t "$pkgdir/usr/share/applications"
144
install -Dm644 "$data/$id.service" -t "$pkgdir/usr/share/dbus-1/services"
145
sed -i 's|^Exec=universe-desktop|Exec=/usr/bin/universe-desktop|' "$pkgdir/usr/share/dbus-1/services/$id.service"
146
install -Dm644 "$data/$id.search-provider.ini" -t "$pkgdir/usr/share/gnome-shell/search-providers"
147
install -Dm644 "$data/$id.metainfo.xml" -t "$pkgdir/usr/share/metainfo"
148
install -Dm644 "$data/icons/apps/$id.svg" -t "$pkgdir/usr/share/icons/hicolor/scalable/apps"
149
install -Dm644 "$data/icons/apps/$id-symbolic.svg" -t "$pkgdir/usr/share/icons/hicolor/symbolic/apps"
150
install -Dm644 gen/universe-desktop.1 -t "$pkgdir/usr/share/man/man1"
151
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
152
}
153
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-28 09:20:32 | Low | 2 |