nexo-client
LOW
maintainer Lokifisch
0 votes
scanned 2026-10-27 07:47:02.942332
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
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.
PKGBUILD
1
# Maintainer: Lokifisch <lokifisch@lokifisch.dev>
2
pkgname=nexo-client
3
pkgver=0.7.0
4
pkgrel=1
5
pkgdesc="Native Minecraft launcher — no webview, no bundled runtime"
6
arch=('x86_64' 'aarch64')
7
url="https://github.com/Lokifisch/nexo-client"
8
license=('MIT')
9
# The binary links only libc, libgcc_s and libm; wgpu and winit dlopen the
10
# entire graphics/windowing stack at runtime. namcap therefore infers almost
11
# nothing from the ELF and these must be listed by hand, or the package
12
# installs cleanly and then fails to open a window. Verified against the
13
# libraries actually mapped into a running process, not guessed.
14
# fontconfig is the exception: it isn't dlopen'd, but it supplies /etc/fonts,
15
# which is how the text stack discovers system fonts.
16
depends=(
17
'vulkan-icd-loader'
18
'libxkbcommon'
19
'wayland'
20
'libx11'
21
'libxcursor'
22
'libxi'
23
'libxrandr'
24
'fontconfig'
25
'hicolor-icon-theme'
26
'gcc-libs'
27
)
28
# makepkg's default LTO turns ring's C sources into GCC LTO objects, which
29
# rust-lld can't link ("undefined symbol: ring_core_..."). Rust packages on
30
# Arch switch it off for that reason.
31
options=('!lto')
32
makedepends=('cargo')
33
optdepends=(
34
'jdk-openjdk: required to actually launch Minecraft (Java 25+)'
35
'vulkan-radeon: Vulkan driver for AMD GPUs'
36
'nvidia-utils: Vulkan driver for NVIDIA GPUs'
37
'vulkan-intel: Vulkan driver for Intel GPUs'
38
)
39
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
40
sha256sums=('422f0ed99859af75c8a3883c6dbf5e7ad5832a4fdedfdbb8ecfa589ee0414a5b')
41
42
prepare() {
43
cd "$pkgname-$pkgver"
44
# The repo pins a toolchain in rust-toolchain.toml, which would make a
45
# rustup-based builder go fetch that exact version. RUSTUP_TOOLCHAIN takes
46
# precedence over that file, so packaging builds use the system Rust.
47
export RUSTUP_TOOLCHAIN=stable
48
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
49
}
50
51
build() {
52
cd "$pkgname-$pkgver"
53
export RUSTUP_TOOLCHAIN=stable
54
export CARGO_TARGET_DIR=target
55
# Turns off the built-in self-updater: pacman owns /usr/bin/nexo, and a
56
# binary replaced underneath it would desync the package's file list and
57
# be silently reverted by the next -Syu. self_update.rs also refuses any
58
# install under /usr on its own; this states the intent at the source.
59
export NEXO_SELF_UPDATE=off
60
cargo build --frozen --release
61
}
62
63
check() {
64
cd "$pkgname-$pkgver"
65
export RUSTUP_TOOLCHAIN=stable
66
# Unit tests only. The `live_apis` contract tests are #[ignore]d because
67
# they need network access, which a clean build chroot does not have.
68
# The tests exercise the updater's own refusal rules, so they build it in:
69
# the packaged binary compiles it out, see build().
70
unset NEXO_SELF_UPDATE
71
cargo test --frozen --release
72
}
73
74
package() {
75
cd "$pkgname-$pkgver"
76
# Install rules live in the Makefile so this package, the Debian package,
77
# and a plain `make install` can't drift apart.
78
make install PREFIX=/usr DESTDIR="$pkgdir"
79
}
80
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-27 07:47:02 | Low | 1 |