Package Details: thrive 0.3.4-1

Git Clone URL: https://aur.archlinux.org/thrive.git (read-only)
Package Base: thrive
Description: Game about evolution, in which the player guides a species from their origin as a microbe to the space age and beyond.
Upstream URL: http://revolutionarygamesstudio.com
Keywords: games
Licenses: GPL
Submitter: duthils
Maintainer: duthils
Last Packager: duthils
Votes: 4
Popularity: 0.034055
First Submitted: 2017-08-05 21:43
Last Updated: 2017-08-05 21:43

Latest Comments

immelman commented on 2019-07-04 13:18

Actually There is not issue with the chrome sandbox itself. It's related to the User Namespace being disabled on arch. I used the command as stated here. https://github.com/Revolutionary-Games/Thrive/issues/749#issuecomment-489430284

BTW, I think it might be time to update the package if the chrome sandbox issue is now cleared.

hhyyrylainen commented on 2019-03-02 11:33

Hi, I'm one of the Thrive developers and responsible for the provided Linux packages.

Recently an issue was opened concerning the "chrome-sandbox" binary: https://github.com/Revolutionary-Games/Thrive/issues/749 and this package was linked there. I'll reiterate some of my points here (and I ended up writing more info here, that I'll copy there).

The game uses Chromium Embedded Framework for the GUI. They recommend that the GUI content process is sandboxed (like in chrome) to prevent loaded web content from exploiting bugs in chromium to escape the browser process and do malicious things to the computer. Currently the game has no web content loaded in it but in the future we might want to show something like a wiki or help forums inside the game which is only partly controlled by us and could contain for example malicious JavaScript meant to exploit chrome. So the chrome-sandbox binary is part of CEF and distributed with the game. Slightly offtopic note is that on Windows due to the MD MT flag craziness the sandbox is not used.

In the packaged version the chrome-sandbox binary is included, but it is not even marked executable as that is the way the CEF library creates it when compiling. On my system (Fedora 28) this works just fine. I think this might be as I have chrome installed and have chrome-sandbox owned by root with permissions "-rwsr-xr-x." installed in opt/google/chrome/chrome-sandbox. When I deleted the chrome-sandbox binary from Thrive-0.4.0.2-LINUX-generic/bin the game still ran fine leading me to believe that that binary must be installed system wide in a location that CEF looks for. And the packaged binary is currently not needed / it needs to be installed with the correct permissions. As a fix for running the game I think the "--no-sandbox" flag should allow the game to start without a proper chrome-sandbox binary. Suggestions as to how to solve this and pull requests are welcome.

I've been planning on switching away from CEF but that won't be happening soon. And I'd like to keep the possibility of having web content in the game in the future as well, which might work with servo if that becomes usable as an embedded browser.

duthils commented on 2019-01-13 01:31

For reference, here's my current PKGBUILD (some dependencies are not necessary anymore).

THIS PKGBUILD MAY BE DANGEROUS!

# Maintainer: Sebastien Duthil <duthils@duthils.net>
# Contributor: Pol Marcet Sardà <polmarcetsarda@gmail.com>

pkgname=thrive
pkgver=0.4.0.2
pkgrel=1
pkgdesc="Game about evolution, in which the player guides a species from their origin as a microbe to the space age and beyond. "                                                                                  
arch=('i686' 'x86_64')
url="http://revolutionarygamesstudio.com"
license=('GPL')
depends=()
makedepends=('p7zip')
source=(https://github.com/Revolutionary-Games/Thrive/releases/download/v${pkgver}/Thrive-${pkgver}-LINUX-generic.7z                                                                                               
        thrive.sh)
sha256sums=('060b653fb466644452594c00d72103e743699032ba03a63df430d606cea666ec'
            'd4ffae8d96c0a2e2f23a281053a6d5817f964668556e770c2b62574d86c74ce7')
_Pkgname=Thrive

package() {
  cd "$srcdir/Thrive-${pkgver}-LINUX-generic"

  mkdir -p "$pkgdir/opt/thrive"
  cp -r * "$pkgdir/opt/thrive"
  chgrp -R games "$pkgdir/opt/thrive"
  chmod -R g+w "$pkgdir/opt/thrive"
  chmod ugo+x /opt/thrive/bin/chrome-sandbox
  chmod u+s /opt/thrive/bin/chrome-sandbox
  install -Dm755 "$srcdir/thrive.sh" "$pkgdir/usr/bin/thrive"
}

duthils commented on 2019-01-13 01:24

Thanks Pol_M for the patch :)

I had to run the following commands to package() to make it work:

chmod ugo+x /opt/thrive/bin/chrome-sandbox
chmod u+s /opt/thrive/bin/chrome-sandbox  # THIS IS DANGEROUS!

The game complained about permissions of this binary, saying it should have 4755 permissions, SUID and owned by root. However, I don't understand why the games wants to give SUID to this root-owned binary. No game should have to run as root... I found no reference to "chrome-sandbox" in the code and that worries me a lot.

As long as I don't understand why or how to avoid it I will not update the package.

Pol_M commented on 2019-01-12 20:18

Suggested PKGBUILD (currently the program won't work in my machine, working to solve it):

# Maintainer: Sebastien Duthil <duthils@free.fr>
# Contributor: Pol Marcet Sardà <polmarcetsarda@gmail.com>

pkgname=thrive
pkgver=0.4.0.2
pkgrel=1
pkgdesc="Game about evolution, in which the player guides a species from their origin as a microbe to the space age and beyond. "
arch=('i686' 'x86_64')
url="http://revolutionarygamesstudio.com"
license=('GPL')
depends=('jasper' 'ilbc' 'libidn2')
makedepends=('p7zip')
source=(https://github.com/Revolutionary-Games/Thrive/releases/download/v${pkgver}/Thrive-${pkgver}-LINUX-generic.7z
        thrive.sh)
sha256sums=('060b653fb466644452594c00d72103e743699032ba03a63df430d606cea666ec'
            'd4ffae8d96c0a2e2f23a281053a6d5817f964668556e770c2b62574d86c74ce7')
_Pkgname=Thrive

package() {
  cd "$srcdir/Thrive-${pkgver}-LINUX-generic"

  mkdir -p "$pkgdir/opt/thrive"
  cp -r * "$pkgdir/opt/thrive"
  chgrp -R games "$pkgdir/opt/thrive"
  chmod -R g+w "$pkgdir/opt/thrive"
  install -Dm755 "$srcdir/thrive.sh" "$pkgdir/usr/bin/thrive"

  # workaround hard dependency to libilbc.so.0, when ilbc only provides libilbc.so
  mkdir -p "$pkgdir/usr/lib"
  ln -s libilbc.so "$pkgdir/usr/lib/libilbc.so.0"
}

manolollr commented on 2017-08-10 08:13

OK. Thanks!

duthils commented on 2017-08-10 00:23

Yup, you need to be in the games group for the game to work.

But if you ran the game once as root, it created the log file as root, and the game will not be able to overwrite/append to it when run as a user. So you need to:

sudo chown <your_user>:games /opt/thrive/bin/*.{log,sav,cfg}

Or simply "sudo rm" them.

If you find any better way to handle the log files, I'm still searching :)

manolollr commented on 2017-08-09 15:34

The game only works whith root user, executing sudo thrive.

I've tried to add my user to group "games", but it doesn't work too. This is the error:

CEGUI::FileIOException in function 'virtual void CEGUI::DefaultLogger::setLogFilename(const CEGUI::String&, bool)' (/home/hhyyrylainen/Projects/cegui/cegui/src/DefaultLogger.cpp:190) : Failed to open file 'CEGUI.log' for writing
terminate called after throwing an instance of 'CEGUI::FileIOException'