[GH-ISSUE #4616] Tremulous and warsow profiles are broken on Arch #2727

Closed
opened 2026-05-05 09:23:23 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @jose1711 on GitHub (Oct 18, 2021).
Original GitHub issue: https://github.com/netblue30/firejail/issues/4616

Neither warsow nor tremulous (and perhaps a few other apps) run with their stock profiles on Arch.

❯ warsow 
Cannot start application: No such file or directory
❯ tremulous
Cannot start application: No such file or directory

What both games have in common is usage of wrappers.

❯ cat /usr/bin/tremulous <(echo "=====") /usr/bin/warsow
#!/usr/bin/env sh

cd /opt/tremulous/
./tremulous "$@"
=====
#!/bin/bash

basepath="/opt/warsow"

${basepath}/warsow \
  +set fs_basepath ${basepath} \
  +set fs_usehomedir 1 "${@}"

In order to make them work the following is needed:

  • drop include disable-shell.inc (as wrappers are written in shell)
  • either drop private-bin completely or extend:
    # warsow: private-bin warsow,bash,sh,dirname,uname,sed,basename
    # tremulous: private-bin tremded,tremulous,tremulous-wrapper,sh,env

Interestingly despite both games having its data in /opt (as opposed to profile expecting it in /usr/share) I did not have to add a new whitelist for this directory.

I can raise a PR - just don't know maybe there's a better option to tackle apps using wrappers..

Originally created by @jose1711 on GitHub (Oct 18, 2021). Original GitHub issue: https://github.com/netblue30/firejail/issues/4616 Neither `warsow` nor `tremulous` (and perhaps a few other apps) run with their stock profiles on Arch. ``` ❯ warsow Cannot start application: No such file or directory ❯ tremulous Cannot start application: No such file or directory ``` What both games have in common is usage of wrappers. ``` ❯ cat /usr/bin/tremulous <(echo "=====") /usr/bin/warsow #!/usr/bin/env sh cd /opt/tremulous/ ./tremulous "$@" ===== #!/bin/bash basepath="/opt/warsow" ${basepath}/warsow \ +set fs_basepath ${basepath} \ +set fs_usehomedir 1 "${@}" ``` In order to make them work the following is needed: - drop `include disable-shell.inc` (as wrappers are written in shell) - either drop `private-bin` completely or extend: `# warsow: private-bin warsow,bash,sh,dirname,uname,sed,basename` `# tremulous: private-bin tremded,tremulous,tremulous-wrapper,sh,env` Interestingly despite both games having its data in `/opt` (as opposed to profile expecting it in `/usr/share`) I did not have to add a new `whitelist` for this directory. I can raise a PR - just don't know maybe there's a better option to tackle apps using wrappers..
Author
Owner

@rusty-snake commented on GitHub (Oct 18, 2021):

I would say, use include allow-bin-sh.inc instead of dropping ds and open a PR.

<!-- gh-comment-id:945570699 --> @rusty-snake commented on GitHub (Oct 18, 2021): I would say, use `include allow-bin-sh.inc` instead of dropping ds and open a PR.
Author
Owner
<!-- gh-comment-id:946578544 --> @jose1711 commented on GitHub (Oct 19, 2021): Related PRs: https://github.com/netblue30/firejail/pull/4621 https://github.com/netblue30/firejail/pull/4624
Author
Owner

@reinerh commented on GitHub (Oct 23, 2021):

@jose1711 the two PRs are merged, can this now be closed?

<!-- gh-comment-id:950155076 --> @reinerh commented on GitHub (Oct 23, 2021): @jose1711 the two PRs are merged, can this now be closed?
Author
Owner

@jose1711 commented on GitHub (Oct 24, 2021):

Thank you, both profiles working, closing

<!-- gh-comment-id:950285440 --> @jose1711 commented on GitHub (Oct 24, 2021): Thank you, both profiles working, closing
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/firejail#2727
No description provided.