nexo-client

LOW
maintainer Lokifisch 0 votes scanned 2026-10-27 07:47:02.942332
View on AUR
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>
2pkgname=nexo-client
3pkgver=0.7.0
4pkgrel=1
5pkgdesc="Native Minecraft launcher — no webview, no bundled runtime"
6arch=('x86_64' 'aarch64')
7url="https://github.com/Lokifisch/nexo-client"
8license=('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.
16depends=(
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.
31options=('!lto')
32makedepends=('cargo')
33optdepends=(
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)
39source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
40sha256sums=('422f0ed99859af75c8a3883c6dbf5e7ad5832a4fdedfdbb8ecfa589ee0414a5b')
41
42prepare() {
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
51build() {
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
63check() {
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
74package() {
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)SeverityRules
2026-10-27 07:47:02 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion