games-strategy/naev: add 0.13.3

0.13.x introduces rust usage which is implemented a bit annoyingly with
generated cargo files inside the build dir, this requires partial
compilation (not just meson configure) before can generate the crates
tarball.

Quite possible overlooked something given there is a lot of changes in
the build system and lot of files were moving around making it harder
to spot relevant bits.

Also had to remove the ~x86 keyword due to bindgen, and have no
intention to try to rekeyword. This has become very brittle and unless
seomeone really wants it, would rather keep keywords limited.

Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Ionen Wolkens
2026-02-05 07:14:31 -05:00
parent 44af755590
commit 39ce78c1c5
2 changed files with 133 additions and 0 deletions

View File

@@ -1 +1,3 @@
DIST naev-0.12.6-source.tar.xz 466148336 BLAKE2B 3f5e7e9613a711537171ca7b0cf8f190681a2febb94ef1ff9edcc5e4e9f701e9744c4ffbcf958ce8f3bc862214b35bcf2b690f7e3bd15ef7fa3b62dcfe22b21a SHA512 4d28e9caa26e4c6328b33f17e7c101bc80c6f30540f8d148e7441a9193a3a1a7ee647d501acde7b72b60a9e60ef66774363fdeacefa7c2b7522e278ed44017d2
DIST naev-0.13.3-source.tar.xz 199298304 BLAKE2B 705b9612fd15ef38bc57aaa2fd6eb59228928df03e6a12de8e1ebd6be649db3e759331517d85a782b83c89cd374cb2e9c6e2a947b902877783eb7480ff6a3604 SHA512 67c9b5674db9d19e4f0d8d26fd81647a2dbdc70e628151738c18e96600be3196d946ad67f65c41f73828f2c0a6b2b9350fb1ad80f3ad4fb749e0a9feeaf099ae
DIST naev-0.13.3-vendor.tar.xz 39447328 BLAKE2B bcecb6d19fd3a6d0b5992cf3ff9dab454570ea335fcef1b0c404c356eeabfa7bc2bf4f615addfabe3bd344401c75bbabe45670120774d4063de8339b59bc17d7 SHA512 bac9f55282d444d51837315e32042245655fb052f964d7284d4851d47e99b98b823528137204d9f265facaa4166579af18e623c1a23907053d8f73792a95cec8

View File

@@ -0,0 +1,131 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
LUA_COMPAT=( luajit )
PYTHON_COMPAT=( python3_{11..14} )
RUST_MIN_VER=1.89.0
inherit cargo lua-single meson python-any-r1 xdg
DESCRIPTION="2D space trading and combat game, in a similar vein to Escape Velocity"
HOMEPAGE="https://naev.org/"
# creating the vendor tarball first requires running src_compile until
# it fails downloading crates in sandbox to generate several cargo files
SRC_URI="
https://codeberg.org/naev/naev/releases/download/v${PV}/${P}-source.tar.xz
https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz
"
LICENSE="GPL-3+ BSD BSD-2 MIT"
LICENSE+="
Apache-2.0 CC-BY-2.0 CC-BY-3.0 CC-BY-4.0 CC-BY-SA-2.0 CC-BY-SA-3.0
CC-BY-SA-4.0 CC0-1.0 FDL-1.2 GPL-2+ OFL-1.1 public-domain
" # assets
LICENSE+="
Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
CDLA-Permissive-2.0 IJG ISC MIT MIT-0 MPL-2.0 openssl Unicode-3.0
ZLIB
" # crates
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc"
REQUIRED_USE="${LUA_REQUIRED_USE}"
# tests been a headache to keep working in sandbox with software GL
RESTRICT="test"
# dlopen: libglvnd
RDEPEND="
${LUA_DEPS}
app-text/cmark:=
dev-games/physfs
=dev-libs/libgit2-1.9.2*:=
dev-libs/libpcre2:=
dev-libs/libunibreak:=
dev-libs/libxml2:=
dev-libs/openssl:=
media-libs/dav1d:=
media-libs/freetype:2
media-libs/libglvnd
media-libs/libsdl3[opengl]
media-libs/libvorbis
media-libs/openal
media-libs/opus
net-libs/enet:1.3=
net-libs/libssh2
sci-libs/cholmod
sci-libs/cxsparse
sci-libs/openblas
sci-libs/suitesparse
sci-mathematics/glpk:=
virtual/libintl
"
DEPEND="${RDEPEND}"
BDEPEND="
$(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
>=dev-build/meson-1.7.0
>=dev-util/bindgen-0.72.0
sys-devel/gettext
doc? (
app-text/doxygen
dev-lua/ldoc
media-gfx/graphviz
)
"
QA_FLAGS_IGNORED="usr/lib.*/libnaev_rlib.so" # rust
python_check_deps() {
python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
}
pkg_setup() {
lua-single_pkg_setup
python-any-r1_pkg_setup
rust_pkg_setup
}
src_prepare() {
default
# don't probe OpenGL for tests (avoids sandbox violations, bug #829369)
sed -i "/subdir('glcheck')/d" test/meson.build || die
# meson.build overrides CARGO_HOME, symlink to use our config.toml
# (note need to set BUILD_DIR either way due to cargo_env's subshell)
BUILD_DIR=${WORKDIR}/${P}-build
mkdir -p -- "${BUILD_DIR}" || die
ln -s -- "${CARGO_HOME}" "${BUILD_DIR}"/cargo-home || die
}
src_configure() {
export LIBGIT2_NO_VENDOR=1
export LIBSSH2_SYS_USE_PKG_CONFIG=1
local emesonargs=(
# *can* do lua5-1 but upstream uses+test luajit most (bug #946881)
-Dluajit=enabled
$(meson_feature doc docs_c)
$(meson_feature doc docs_lua)
)
cargo_env meson_src_configure
}
src_compile() {
cargo_env meson_src_compile
}
src_install() {
local DOCS=( Changelog.md Readme.md )
cargo_env meson_src_install
if use doc; then
dodir /usr/share/doc/${PF}/html
mv -- "${ED}"/usr/{doc/naev/{c,lua},share/doc/${PF}/html} || die
rm -r -- "${ED}"/usr/doc || die
fi
rm -r -- "${ED}"/usr/share/doc/naev || die
}