Index | Thread | Search

From:
Bryan Steele <brynet@gmail.com>
Subject:
Re: New: rigg - program to run independent games with unveil
To:
ports@openbsd.org
Date:
Sat, 27 Apr 2024 23:44:37 -0400

Download raw body.

Thread
On Sat, Apr 27, 2024 at 10:57:28PM -0400, Thomas Frohwein wrote:
> updated tarball; I had some left over, commented out lines in the
> Makefile and unnecessary SUBST_*.

Looks good, having this in the ports tree would be nice.

ok brynet@ for what its worth :-)

> 
> On Sat, Apr 27, 2024 at 10:20:31PM -0400, Thomas Frohwein wrote:
> > Hi,
> > 
> > This is a port of rigg, a tool for running games based on intermediate/
> > interpreted language engines on OpenBSD that I created. It improves
> > over what we have currently with fnaify:
> > 
> > - By default, it uses unveil to only allow access to a subset of the
> >   filesystem (notably no read or write access to $HOME or $HOME/.ssh).
> > - It also unveil with zero permissions to hide conflicting bundled
> >   libraries, so that they don't interfere with execution. (fnaify on
> >   the other hand has to rename/move those files)
> > - It's more focused, not trying to manage custom environment variables
> >   or flags for the execution.
> > 
> > The principle is that it's a binary that can invoke mono and hashlink
> > via their libraries (see [1] for mono example). It can replace many of
> > the use cases for fnaify in ports. Ultimately, there is a plan for a
> > project (IndieRunner) to supersede fnaify completely with use of rigg
> > where appropriate. rigg can run the following games and more: Crystal
> > Project, Dead Cells, Hacknet, Northgard, Nuclear Blaze, Opus Magnum,
> > Owlboy, Salt and Sanctuary, SpaceChem, Terraria.
> > 
> > I'm attaching RogueLegacy.log that shows the rigg -v output, including
> > all the unveil's that the game runs with.
> > 
> > I had to create a do-install target, will figure out for next release
> > why the included install target inherited from bsd.prog.mk fails in the
> > port.
> > 
> > `make test` fails currently in the port system. This has simple mono
> > assemblies to demonstrate visibility and invisibility of directories.
> > I'll work on fixing this for the next release. `make test` works
> > outside the ports tree (after installation), for those who want to
> > check this.
> > 
> > ok to import?
> > 
> > [1] https://www.mono-project.com/docs/advanced/embedding/
> 
> 
> > parsing Dllmap
> > initializing mono jit for RogueLegacy.exe
> > opening executable: RogueLegacy.exe
> > 
> > unveil: /usr/local/share/FNA             "r"
> > unveil: /usr/lib                         "r"
> > unveil: /usr/local/lib                   "r"
> > unveil: /usr/X11R6                       "r"
> > unveil: /usr/share                       "r"
> > unveil: /etc                             "r"
> > unveil: /dev                             "rw"
> > unveil: /tmp                             "rwc"
> > unveil: .                                "rwc"
> > unveil: /home/thfr/.config               "rwc"
> > unveil: /home/thfr/.local/share          "rwc"
> > unveil: /home/thfr/.cache/mesa_shader_ca "rwc"
> > unveil: /home/thfr/.mono                 "rwc"
> > unveil: /home/thfr/.sndio                "rwc"
> > unveil: /home/thfr/.Xauthority           "rw"
> > unveil: /home/thfr/.XCompose             "rwc"
> > unveil: /home/thfr/.Xdefaults            "rwc"
> > unveil: FNA.dll                          ""
> > unveil: FNA.dll.config                   ""
> > unveil: Mono.Posix.dll                   ""
> > unveil: Mono.Security.dll                ""
> > unveil: System.Configuration.dll         ""
> > unveil: System.Core.dll                  ""
> > unveil: System.Data.dll                  ""
> > unveil: System.Drawing.dll               ""
> > unveil: System.Numerics.dll              ""
> > unveil: System.Runtime.Serialization.dll ""
> > unveil: System.Security.dll              ""
> > unveil: System.Xml.Linq.dll              ""
> > unveil: System.Xml.dll                   ""
> > unveil: System.dll                       ""
> > unveil: mscorlib.dll                     ""
> > unveil: (null)                           "(null)"
> > 
> > executing mono jit with the following arguments: "RogueLegacy.exe"
> > 
> > cleaning up...
>