[Bug 256355] games/jaggedalliance2: update to 0.18.0. Second attempt.

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 01 Jun 2021 20:33:57 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256355

            Bug ID: 256355
           Summary: games/jaggedalliance2: update to 0.18.0. Second
                    attempt.
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: timp87@gmail.com

Created attachment 225477
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=225477&action=edit
port patch

This is a second attempt to update games/jaggedalliance2 to 0.18.0. See
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255399 for the first one.

It uses cmake and cargo (some component written in rust) and has some external
dependencies to be downloaded during build process.
So the build process for JA2-Stracciatella is not packaging friendly:
- there are rust crates the project depends on which can't be handled by ports
infra. Fortunately those crates are for android build. But I couldn't find any
way to tell cargo to skip those dependencies to be downloaded.
patch-rust_stracciatella__c__api_Cargo.toml and
patch-rust_stracciatella_Cargo.toml patches are removing not needed crates from
Cargo.toml files. Cargo is able to see that and skip them.
- there are dependencies written in C/C++. Current cmake build process provides
a way to use packages already installed in your system for some of those
dependencies.  But there are new ones appeared in this release which don't have
such a way. Those are lua, sol2 and miniaudio. So it always downloads and
builds them during build step.
patch-dependencies_lib-lua_CMakeLists.txt and
patch-dependencies_lib-sol2_CMakeLists.txt handle lua and sol2 dependencies.
Miniaudio is trickier. We have a port for it. But it's incomplete for ja2
usage. We have bare minimum in our port, while ja2 build wants files from
extras  dir of miniaudio project (see https://github.com/mackron/miniaudio). So
I added a dirty stuff with GH_TUPLE and pre-patch with REINPLACE to make it
sure miniaudio sources are downloaded and it can start building.

If anybody can advice me something I miss, please, do.

I'll try to upstream those patches and rise my concerns in their github.

This port patch also adds more dependencies I found it was looking during
configure step.

-- 
You are receiving this mail because:
You are the assignee for the bug.