Compare commits

..

1 commit

Author SHA1 Message Date
Hans de Goede
d3ca4ae449 Fix a crash in the welcome screen (rhbz#830640) 2012-07-29 16:53:21 +02:00
25 changed files with 499 additions and 520 deletions

1
.gitignore vendored
View file

@ -1,2 +1 @@
xpilot-ng-4.7.2.tar.gz
/xpilot-ng-4.7.3.tar.gz

0
logwatch.script.xpilot Normal file → Executable file
View file

0
logwatch.shared.applyxpilotdate Normal file → Executable file
View file

View file

@ -1 +1 @@
89a360747f7811a33c4821eec5583b7d xpilot-ng-4.7.3.tar.gz
b922251ab9c69f87567c9606304ee589 xpilot-ng-4.7.2.tar.gz

View file

@ -0,0 +1,84 @@
diff -up xpilot-ng-4.7.2/src/client/textinterface.c~ xpilot-ng-4.7.2/src/client/textinterface.c
--- xpilot-ng-4.7.2/src/client/textinterface.c~ 2005-09-02 19:06:20.000000000 +0200
+++ xpilot-ng-4.7.2/src/client/textinterface.c 2010-01-15 12:34:07.000000000 +0100
@@ -37,7 +37,7 @@ extern int dgram_one_socket; /* from da
/*
* just like fgets() but strips newlines like gets().
*/
-static char* getline(char* buf, int len, FILE* stream)
+static char* xp_getline(char* buf, int len, FILE* stream)
{
char *nl;
@@ -251,7 +251,7 @@ static bool Process_commands(sockbuf_t *
else if (!auto_connect) {
printf("*** Server on %s. Enter command> ", conpar->server_name);
- getline(linebuf, MAX_LINE, stdin);
+ xp_getline(linebuf, MAX_LINE, stdin);
if (feof(stdin)) {
puts("");
c = 'Q';
@@ -338,7 +338,7 @@ static bool Process_commands(sockbuf_t *
case 'K':
printf("Enter name of victim: ");
fflush(stdout);
- if (!getline(linebuf, MAX_LINE, stdin)) {
+ if (!xp_getline(linebuf, MAX_LINE, stdin)) {
printf("Nothing changed.\n");
continue;
}
@@ -349,7 +349,7 @@ static bool Process_commands(sockbuf_t *
case 'M': /* Send a message to server. */
printf("Enter message: ");
fflush(stdout);
- if (!getline(linebuf, MAX_LINE, stdin) || !linebuf[0]) {
+ if (!xp_getline(linebuf, MAX_LINE, stdin) || !linebuf[0]) {
printf("No message sent.\n");
continue;
}
@@ -364,7 +364,7 @@ static bool Process_commands(sockbuf_t *
case 'D': /* Shutdown */
if (!auto_shutdown) {
printf("Enter delay in seconds or return for cancel: ");
- getline(linebuf, MAX_LINE, stdin);
+ xp_getline(linebuf, MAX_LINE, stdin);
/*
* No argument = cancel shutdown = arg_int=0
*/
@@ -375,7 +375,7 @@ static bool Process_commands(sockbuf_t *
delay = 1;
printf("Enter reason: ");
- getline(linebuf, MAX_LINE, stdin);
+ xp_getline(linebuf, MAX_LINE, stdin);
} else {
strlcpy(linebuf, shutdown_reason, sizeof(linebuf));
delay = 60;
@@ -388,7 +388,7 @@ static bool Process_commands(sockbuf_t *
case 'O': /* Tune an option. */
printf("Enter option: ");
fflush(stdout);
- if (!getline(linebuf, MAX_LINE, stdin)
+ if (!xp_getline(linebuf, MAX_LINE, stdin)
|| (len=strlen(linebuf)) == 0) {
printf("Nothing changed.\n");
continue;
@@ -396,7 +396,7 @@ static bool Process_commands(sockbuf_t *
printf("Enter new value for %s: ", linebuf);
fflush(stdout);
strcat(linebuf, ":"); len++;
- if (!getline(&linebuf[len], MAX_LINE-len, stdin)
+ if (!xp_getline(&linebuf[len], MAX_LINE-len, stdin)
|| linebuf[len] == '\0') {
printf("Nothing changed.\n");
continue;
@@ -450,7 +450,7 @@ static bool Process_commands(sockbuf_t *
case 'T': /* Set team. */
printf("Enter team: ");
fflush(stdout);
- if (!getline(linebuf, MAX_LINE, stdin)
+ if (!xp_getline(linebuf, MAX_LINE, stdin)
|| (len = strlen(linebuf)) == 0)
printf("Nothing changed.\n");
else {

View file

@ -1,5 +1,5 @@
--- a/src/server/score.c.orig 2006-10-20 11:38:01.000000000 -0700
+++ b/src/server/score.c 2006-10-20 12:44:30.000000000 -0700
--- src/server/score.c.orig 2006-10-20 11:38:01.000000000 -0700
+++ src/server/score.c 2006-10-20 12:44:30.000000000 -0700
@@ -257,9 +257,13 @@
sc = Rate(cannon->score, Get_Score(victim))
* options.cannonKillScoreMult;

View file

@ -1,12 +0,0 @@
--- xpilot-ng-4.7.3/configure.ac~ 2010-03-06 02:20:30.000000000 +0100
+++ xpilot-ng-4.7.3/configure.ac 2016-02-01 14:29:21.981049477 +0100
@@ -325,7 +325,8 @@ if test x$enable_sound = xyes; then
alut,
main,
[have_alut=yes],
- [])
+ [],
+ -lopenal)
if test x$have_openal = xyes; then
if test x$have_alut = xyes; then
have_sound=yes

View file

@ -1,13 +0,0 @@
diff --git a/src/client/sdl/scrap.c b/src/client/sdl/scrap.c
index e86beaff931d66e9..557e33f206f84d12 100644
--- a/src/client/sdl/scrap.c
+++ b/src/client/sdl/scrap.c
@@ -57,6 +57,8 @@ typedef uint32_t scrap_type;
#if defined(X11_SCRAP)
/* * */
static Display *SDL_Display;
+/* Avoid conflict with SDL_Window defined in <SDL/SDL_syswm.h>. */
+#define SDL_Window SDL_Window_variable
static Window SDL_Window;
static void (*Lock_Display)(void);
static void (*Unlock_Display)(void);

View file

@ -1,11 +0,0 @@
diff -up xpilot-ng-4.7.3/src/server/suibotdef.c~ xpilot-ng-4.7.3/src/server/suibotdef.c
--- xpilot-ng-4.7.3/src/server/suibotdef.c~ 2026-01-24 18:58:21.000000000 +0100
+++ xpilot-ng-4.7.3/src/server/suibotdef.c 2026-01-24 18:59:54.806510851 +0100
@@ -378,7 +378,6 @@ typedef struct {
} object_proximity_t;
-static bool Get_object_proximity();
static bool Get_object_proximity(player_t *pl, object_t *shot, double sqmaxdist,int maxtime, object_proximity_t *object_proximity){
/* get square of closest distance between player and object
* compare with sqmaxdist and maxtime and return sqdistance and time

View file

@ -1,114 +0,0 @@
diff --git a/src/mapedit/proto.h b/src/mapedit/proto.h
index b4f19f7d25cfe63d..d6222f5c7aa02e83 100644
--- a/src/mapedit/proto.h
+++ b/src/mapedit/proto.h
@@ -73,15 +73,15 @@ int NewMap(HandlerInfo_t info);
int ResizeWidth(HandlerInfo_t info);
int ResizeHeight(HandlerInfo_t info);
int OpenPreferencesPopup(HandlerInfo_t info);
-int OpenMapInfoPopup(void);
-int OpenRobotsPopup(void);
-int OpenVisibilityPopup(void);
-int OpenCannonsPopup(void);
-int OpenRoundsPopup(void);
-int OpenInitItemsPopup(void);
-int OpenMaxItemsPopup(void);
-int OpenProbsPopup(void);
-int OpenScoringPopup(void);
+int OpenMapInfoPopup(HandlerInfo_t info);
+int OpenRobotsPopup(HandlerInfo_t info);
+int OpenVisibilityPopup(HandlerInfo_t info);
+int OpenCannonsPopup(HandlerInfo_t info);
+int OpenRoundsPopup(HandlerInfo_t info);
+int OpenInitItemsPopup(HandlerInfo_t info);
+int OpenMaxItemsPopup(HandlerInfo_t info);
+int OpenProbsPopup(HandlerInfo_t info);
+int OpenScoringPopup(HandlerInfo_t info);
int ValidateCoordHandler(HandlerInfo_t info);
int ShowHoles(HandlerInfo_t info);
char MapData(int x, int y);
diff --git a/src/mapedit/tools.c b/src/mapedit/tools.c
index b99840a257dfa6f6..24a3ca0693e7bb02 100644
--- a/src/mapedit/tools.c
+++ b/src/mapedit/tools.c
@@ -747,7 +747,7 @@ int OpenPreferencesPopup(HandlerInfo_t info)
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenMapInfoPopup()
+int OpenMapInfoPopup(HandlerInfo_t info)
{
Window *temp;
@@ -790,7 +790,7 @@ int OpenMapInfoPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenRobotsPopup()
+int OpenRobotsPopup(HandlerInfo_t info)
{
XMapWindow(display, robots);
return 0;
@@ -801,7 +801,7 @@ int OpenRobotsPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenVisibilityPopup()
+int OpenVisibilityPopup(HandlerInfo_t info)
{
XMapWindow(display, visibility);
return 0;
@@ -812,7 +812,7 @@ int OpenVisibilityPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenCannonsPopup()
+int OpenCannonsPopup(HandlerInfo_t info)
{
XMapWindow(display, cannons);
return 0;
@@ -823,7 +823,7 @@ int OpenCannonsPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenRoundsPopup()
+int OpenRoundsPopup(HandlerInfo_t info)
{
XMapWindow(display, rounds);
return 0;
@@ -834,7 +834,7 @@ int OpenRoundsPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenInitItemsPopup()
+int OpenInitItemsPopup(HandlerInfo_t info)
{
XMapWindow(display, inititems);
return 0;
@@ -845,7 +845,7 @@ int OpenInitItemsPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenMaxItemsPopup()
+int OpenMaxItemsPopup(HandlerInfo_t info)
{
XMapWindow(display, maxitems);
return 0;
@@ -856,7 +856,7 @@ int OpenMaxItemsPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenProbsPopup()
+int OpenProbsPopup(HandlerInfo_t info)
{
XMapWindow(display, probs);
return 0;
@@ -867,7 +867,7 @@ int OpenProbsPopup()
/* Arguments : */
/* Purpose : */
/***************************************************************************/
-int OpenScoringPopup()
+int OpenScoringPopup(HandlerInfo_t info)
{
XMapWindow(display, scoring);
return 0;

View file

@ -1,13 +0,0 @@
diff --git a/src/server/suibotdef.c b/src/server/suibotdef.c
index d5202e3c323f0a8f..494f73f531848817 100644
--- a/src/server/suibotdef.c
+++ b/src/server/suibotdef.c
@@ -405,7 +405,7 @@ static bool Get_object_proximity(player_t *pl, object_t *shot, double sqmaxdist,
/* ignore if there is enough time to deal with this object later */
if((time_until_closest < 0) || (time_until_closest > maxtime))
/*option instead of fixed value: options.dodgetime))*/
- return;
+ return false;
/* get the square of the distance */
sqdistance =

View file

@ -1,16 +0,0 @@
Avoid implicit declaration of the Move_point function in
Wall_in_between_points in suibotdef.c.
diff --git a/src/server/server.h b/src/server/server.h
index 5c0cdd66de1db008..30b7f7d0a8fb09e4 100644
--- a/src/server/server.h
+++ b/src/server/server.h
@@ -151,6 +151,8 @@ void Groups_init(void);
void Walls_init(void);
void Treasure_init(void);
void Move_init(void);
+struct collans;
+void Move_point(const move_t *move, struct collans *answer);
void Move_object(object_t *obj);
void Move_player(player_t *pl);
void Turn_player(player_t *pl, bool push);

View file

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<component type="desktop">
<id>xpilot-ng-sdl.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<name>XPilot NG</name>
<summary>Multi-player space arcade game</summary>
<description>
<p>
A highly addictive, infinitely configurable multiplayer space
arcade game. You pilot a spaceship around space, dodging
obstacles, shooting players and bots, collecting power-ups, and
causing general mayhem. Some features are borrowed
from classics like the Atari coin-ups Asteroids and Gravitar, and the
home-computer games Thrust and Gravity Force.
</p>
<p>
XPilot NG is an extended version of the original XPilot. Like in XPilot,
the aim of the game is to have fun and to beat your fellow pilots.
In a team game, you can humiliate your enemies, blow up your their ships
and steal their treasure. There are also other game modes:
individual game and a race mode.
</p>
<p>
XPilot NG is a networked multi-player game, you can either start your
own server, or join an existing internet game.
</p>
</description>
<url type="homepage">http://xpilot.sourceforge.net/</url>
<screenshots>
<screenshot type="default">http://xpilot.sourceforge.net/shots/polybloods1.png</screenshot>
<screenshot>http://xpilot.sourceforge.net/shots/xpilot_sdl.png</screenshot>
<screenshot>http://xpilot.sourceforge.net/shots/fishtank.png</screenshot>
<screenshot>http://xpilot.sourceforge.net/shots/dragon.png</screenshot>
<screenshot>http://xpilot.sourceforge.net/shots/spaceball.png</screenshot>
</screenshots>
<updatecontact>jwrdegoede_at_fedoraproject.org</updatecontact>
</component>

View file

@ -1,9 +1,11 @@
[Desktop Entry]
Name=XPilot NG
Comment=Multi-player space arcade game
Encoding=UTF-8
Name=XPilot-ng
GenericName=XPilot-ng
Comment=XPilot client
Exec=xpilot-ng-sdl
Icon=xpilot-ng
Icon=xpilot-ng.png
Terminal=false
Type=Application
Categories=Application;Game;ArcadeGame;
Keywords=game;arcade;spacewar;multi-player;classic;retro;
Version=1.0

View file

@ -1,3 +0,0 @@
#Type Name ID GECOS Home directory Shell
g xpilot - - - -
u xpilot - 'xpilot game server' /usr/share/xpilot-ng/ -

102
xpilot-ng-server.init Normal file
View file

@ -0,0 +1,102 @@
#!/bin/sh
#
# xpilot-ng-server This shell script takes care of starting and stopping
# the xpilot-ng game server.
#
# chkconfig: - 15 85
# description: The xpilot-ng server supports playing networked \
# multi-player games.
# processname: xpilot-ng-server
# config: /etc/sysconfig/xpilot-ng-server
# pidfile: /var/run/xpilot-ng-server.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
exec="/usr/bin/xpilot-ng-server"
prog=$(basename $exec)
pidfile=/var/run/$prog.pid
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
echo -n $"Starting Xpilot game server: "
if [ -n "`/sbin/pidof $prog`" ]; then
echo -n $"$prog already running"
failure
echo
return 1
fi
if selinuxenabled ; then
/usr/sbin/semanage port -a -t xpilotd_port_t -p udp 15345 &>/dev/null || :
/usr/sbin/semanage port -a -t xpilotd_port_t -p udp 32200-32299 &>/dev/null || :
fi
# This doesn't properly detect startup failures
daemon --user xpilot $exec $XPILOTD_OPTIONS >>/var/log/xpilot.log 2>&1 &
retval=$?
if [ $retval -eq 0 ]; then
success
touch $lockfile
else
failure
fi
echo
return $retval
}
stop() {
echo -n $"Stopping Xpilot game server: "
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
if selinuxenabled ; then
/usr/sbin/semanage port -d -t xpilotd_port_t -p udp 15345 &>/dev/null || :
/usr/sbin/semanage port -d -t xpilotd_port_t -p udp 32200-32299 &>/dev/null || :
fi
return $retval
}
restart() {
stop
start
}
reload() {
restart
}
force_reload() {
restart
}
fdr_status() {
status $prog
}
case "$1" in
start|stop|restart|reload)
$1
;;
force-reload)
force_reload
;;
status)
fdr_status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
exit 2
esac

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<component type="addon">
<id>xpilot-ng-server</id>
<extends>xpilot-ng-sdl.desktop</extends>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<name>XPilot NG server</name>
<summary>Server for hosting XPilot NG games</summary>
<url type="homepage">http://xpilot.sourceforge.net/</url>
<updatecontact>jwrdegoede_at_gmail.com</updatecontact>
</component>

View file

@ -1,11 +0,0 @@
[Unit]
Description=xpilot-ng-server supports playing networked multi-player games
After=network.target
[Service]
Type=simple
EnvironmentFile=/etc/xpilot-ng/xpilot-ng-server-cmdline-opts
ExecStart=/usr/bin/xpilot-ng-server $XPILOTD_OPTIONS
[Install]
WantedBy=multi-user.target

11
xpilot-ng-x11.desktop Normal file
View file

@ -0,0 +1,11 @@
[Desktop Entry]
Encoding=UTF-8
Name=XPilot-ng classic
GenericName=XPilot-ng classic
Comment=XPilot client with old-school graphics
Exec=xpilot-ng-x11
Icon=xpilot-ng.png
Terminal=false
Type=Application
Categories=Application;Game;ArcadeGame;
Version=1.0

View file

@ -1,10 +0,0 @@
addFilter("incorrect-fsf-address")
addFilter("dangling-symlink")
addFilter("no-documentation")
addFilter("non-standard-uid")
addFilter("non-readable")
addFilter("E: no-binary")
addFilter("W: no-%check-section")
addFilter("E: logrotate-log-dir-not-packaged")
# meh, this should be fixed really ...
addFilter("W: binary-or-shlib-calls-gethostbyname")

View file

@ -1,153 +1,142 @@
%global logwatch_root %{_datadir}/logwatch
%global logwatch_conf %{logwatch_root}/dist.conf
%global logwatch_scripts %{logwatch_root}/scripts
%define selinux_variants targeted
%define selinux_policyver %(sed -e 's,.*selinux-policy-\\([^/]*\\)/.*,\\1,' /usr/share/selinux/devel/policyhelp)
%define logwatch_root %{_datadir}/logwatch
%define logwatch_conf %{logwatch_root}/dist.conf
%define logwatch_scripts %{logwatch_root}/scripts
Name: xpilot-ng
Version: 4.7.3
Release: 39%{?dist}
Summary: Space arcade game for multiple players
Version: 4.7.2
Release: 22%{?dist}
Summary: Multiplayer space arcade game
# Automatically converted from old format: GPLv2+ - review is highly recommended.
License: GPL-2.0-or-later
Group: Amusements/Games
License: GPLv2+
URL: http://xpilot.sourceforge.net
Source0: http://downloads.sourceforge.net/sourceforge/xpilot/xpilot-ng-%{version}.tar.gz
Source1: xpilot-ng.png
Source2: xpilot-ng-sdl.desktop
Source3: xpilot-ng-sdl.appdata.xml
Source4: xpilot-ng-server.service
Source2: xpilot-ng-x11.desktop
Source3: xpilot-ng-sdl.desktop
Source4: xpilot-ng-server.init
Source5: xpilot-ng.sysconfig
Source6: xpilot-ng.logrotate
Source7: xpilot-ng-server.conf
Source7: xpilotd.te
Source8: xpilotd.fc
Source9: xpilotd.if
Source10: logwatch.logconf.xpilot
Source11: logwatch.script.xpilot
Source12: logwatch.serviceconf.xpilot
Source13: logwatch.shared.applyxpilotdate
Source14: xpilot-ng-server.metainfo.xml
Patch0: xpilot-ng-4.7.2-scoreassert.patch
Patch1: xpilot-ng-4.7.2-rhbz830640.patch
Patch2: xpilot-ng-4.7.3-fix-alut-detect.patch
Patch3: xpilot-ng-c99.patch
Patch4: xpilot-ng-SDL_window.patch
Patch5: xpilot-ng-c99-return-mismatch.patch
Patch6: xpilot-ng-c99-incompatible-pointer-types.patch
Patch7: xpilot-ng-c23.patch
Patch1: xpilot-ng-4.7.2-getline.patch
Patch2: xpilot-ng-4.7.2-rhbz830640.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gcc make
BuildRequires: desktop-file-utils libappstream-glib
BuildRequires: desktop-file-utils
BuildRequires: expat-devel SDL_ttf-devel SDL_image-devel zlib-devel
BuildRequires: libXt-devel libGLU-devel
BuildRequires: openal-soft-devel freealut-devel automake
BuildRequires: systemd-rpm-macros
Requires: %{name}-data = %{version}-%{release} hicolor-icon-theme
Provides: %{name}-engine = %{version}-%{release}
BuildRequires: libXt-devel libGLU-devel libXxf86misc-devel
BuildRequires: selinux-policy-devel hardlink checkpolicy
Requires: dejavu-sans-fonts
%description
A highly addictive, infinitely configurable multi-player space
A highly addictive, infinitely configurable multiplayer space
arcade game. You pilot a spaceship around space, dodging
obstacles, shooting players and bots, collecting power-ups, and
causing general mayhem.
%package x11
Summary: Xpilot-ng X11 version
Requires: %{name}-data = %{version}-%{release}
Provides: %{name}-engine = %{version}-%{release}
%description x11
Version of %{name} which uses libX11 rather then SDL.
%package data
Summary: Data files for %{name}
BuildArch: noarch
Requires: %{name}-engine = %{version}-%{release} dejavu-sans-fonts
%description data
Data files for %{name}.
%package server
Summary: Server for hosting xpilot games
Requires: %{name}-data = %{version}-%{release}
Requires: logrotate
%{?sysusers_requires_compat}
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: systemd
Provides: %{name}-engine = %{version}-%{release}
# Make sure the old no longer supported selinux policy from 4.7.2 gets removed
Obsoletes: %{name}-selinux < %{version}-%{release}
Provides: %{name}-selinux = %{version}-%{release}
Summary: Server for hosting xpilot games
Group: Amusements/Games
Requires(pre): shadow-utils
Requires(post): /sbin/chkconfig
Requires(post): /sbin/service
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
Requires(postun): /sbin/service
%description server
The xpilot server. This allows you to host xpilot games on your
computer and develop new xpilot maps. This is required if you
are playing alone, but not required if you are joining one of the
public xpilot games hosted on the internet.
%package selinux
Summary: SELinux policy files for the xpilot-ng game server
Group: Amusements/Games
Requires: %{name}-server = %{version}-%{release}
%if "%{selinux_policyver}" != ""
Requires: selinux-policy >= %{selinux_policyver}
%endif
Requires(post): /usr/sbin/semodule /usr/sbin/semanage /sbin/fixfiles
Requires(preun): /sbin/service /usr/sbin/semodule /usr/sbin/semanage /sbin/fixfiles /usr/sbin/setsebool
Requires(postun): /usr/sbin/semodule
%description selinux
SELinux policy files for the xpilot-ng game server
%package logwatch
Summary: Logwatch scripts for the xpilot game server
Requires: %{name}-server = %{version}-%{release} logwatch
Summary: logwatch scripts for the xpilot game server
Group: Amusements/Games
Requires: %{name}-server = %{version}-%{release} logwatch
%description logwatch
logwatch scripts for the Xpilot game server
%prep
%autosetup -p1
# regenerate autofoo files for patch2
autoreconf -ivf
# fixup textfile encodings
%setup -q
%patch0
%patch1 -p1
%patch2 -p1
pushd doc/man
iconv --from=ISO-8859-1 --to=UTF-8 xpilot-ng-server.man > xpilot-ng-server.man.new
touch -r xpilot-ng-server.man xpilot-ng-server.man.new
mv xpilot-ng-server.man.new xpilot-ng-server.man
iconv --from=ISO-8859-1 --to=UTF-8 xpilot-ng-x11.man > xpilot-ng-x11.man.new
touch -r xpilot-ng-x11.man xpilot-ng-x11.man.new
mv xpilot-ng-x11.man.new xpilot-ng-x11.man
popd
iconv --from=ISO-8859-1 --to=UTF-8 AUTHORS > AUTHORS.new
touch -r AUTHORS AUTHORS.new
mv AUTHORS.new AUTHORS
mkdir SELinux
cp %{SOURCE7} %{SOURCE8} %{SOURCE9} SELinux/
%build
%configure --enable-sound
iconv --from=ISO-8859-1 --to=UTF-8 README -o README
touch -r README.in README
CFLAGS="$RPM_OPT_FLAGS" %configure
make %{?_smp_mflags}
# Build the selinux policy file
pushd SELinux
for variant in %{selinux_variants}
do
make NAME=${variant} -f %{_datadir}/selinux/devel/Makefile
mv xpilotd.pp xpilotd.pp.${variant}
make NAME=${variant} -f %{_datadir}/selinux/devel/Makefile clean
done
popd
%install
%make_install INSTALL="install -p"
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
# Drop old Python 2 only map conversion script
rm $RPM_BUILD_ROOT/%{_datadir}/%{name}/mapconvert.py
chmod a+x $RPM_BUILD_ROOT/%{_datadir}/%{name}/mapconvert.py
desktop-file-install --dir ${RPM_BUILD_ROOT}%{_datadir}/applications %{SOURCE2}
desktop-file-install --vendor fedora \
--dir ${RPM_BUILD_ROOT}%{_datadir}/applications \
--add-category X-Fedora \
%{SOURCE2}
desktop-file-install --vendor fedora \
--dir ${RPM_BUILD_ROOT}%{_datadir}/applications \
--add-category X-Fedora \
%{SOURCE3}
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/
install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/
mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
install -p -m 644 %{SOURCE3} %{SOURCE14} $RPM_BUILD_ROOT%{_datadir}/appdata
appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_datadir}/appdata/*.xml
install -p -D -m 644 %{SOURCE4} $RPM_BUILD_ROOT/lib/systemd/system/%{name}-server.service
install -p -D -m 755 %{SOURCE4} $RPM_BUILD_ROOT/%{_initrddir}/%{name}-server
# Copy certain configuration files to /etc so that they can be properly managed
# as config files.
install -p -D -m 644 %{SOURCE5} $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/%{name}-server-cmdline-opts
install -p -D -m 644 lib/defaults.txt $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/defaults.txt
install -p -D -m 600 lib/password.txt $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/password.txt
install -p -D -m 644 %{SOURCE5} \
$RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/%{name}-server
install -p -D -m 644 %{SOURCE6} \
$RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/%{name}-server
# Install sysusers file
install -p -D -m 0644 %{SOURCE7} %{buildroot}%{_sysusersdir}/xpilot-ng-server.conf
# Copy certain configuration files to /etc so that they can be properly managed
# as config files.
install -p -D -m 644 lib/defaults.txt $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/defaults.txt
install -p -D -m 600 lib/password.txt $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/password.txt
# Replace bundled fonts with system fonts
@ -159,205 +148,140 @@ ln -s %{_datadir}/fonts/dejavu/DejaVuSansMono-Bold.ttf $RPM_BUILD_ROOT%{_datadir
# Install logwatch files
install -pD -m 0644 %{SOURCE10} $RPM_BUILD_ROOT%{logwatch_conf}/logfiles/%{name}.conf
install -pD -m 0644 %{SOURCE11} $RPM_BUILD_ROOT%{logwatch_scripts}/services/%{name}
install -pD -m 0755 %{SOURCE11} $RPM_BUILD_ROOT%{logwatch_scripts}/services/%{name}
install -pD -m 0644 %{SOURCE12} $RPM_BUILD_ROOT%{logwatch_conf}/services/%{name}.conf
install -pD -m 0644 %{SOURCE13} $RPM_BUILD_ROOT%{logwatch_scripts}/shared/applyxpilotdate
install -pD -m 0755 %{SOURCE13} $RPM_BUILD_ROOT%{logwatch_scripts}/shared/applyxpilotdate
# Install selinux policies
pushd SELinux
for variant in %{selinux_variants}
do
install -d $RPM_BUILD_ROOT%{_datadir}/selinux/${variant}
install -p -m 644 xpilotd.pp.${variant} \
$RPM_BUILD_ROOT%{_datadir}/selinux/${variant}/xpilotd.pp
done
popd
# Hardlink identical policy module packages together
/usr/sbin/hardlink -cv $RPM_BUILD_ROOT%{_datadir}/selinux
%post
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%postun
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
%pre server
%sysusers_create_compat %{SOURCE7}
getent group xpilot >/dev/null || groupadd -r xpilot
getent passwd xpilot >/dev/null || \
useradd -r -g xpilot -d %{_datadir}/%{name} -s /sbin/nologin \
-c "xpilot game server" xpilot
exit 0
%post server
%systemd_post xpilot-ng-server.service
/sbin/chkconfig --add xpilot-ng-server
%preun server
%systemd_preun xpilot-ng-server.service
if [ "$1" -le "0" ]; then
/sbin/service xpilot-ng-server stop > /dev/null 2>&1
/sbin/chkconfig --del xpilot-ng-server
fi
%postun server
%systemd_postun_with_restart xpilot-ng-server.service
if [ "$1" -ge "1" ]; then
/sbin/service xpilot-ng-server condrestart > /dev/null 2>&1
fi
%post selinux
# Install SELinux policy modules
for selinuxvariant in %{selinux_variants}
do
/usr/sbin/semodule -s ${selinuxvariant} -i \
%{_datadir}/selinux/${selinuxvariant}/xpilotd.pp &> /dev/null || :
done
/usr/sbin/semanage port -a -t xpilotd_port_t -p udp 15345 &> /dev/null || :
/usr/sbin/semanage port -a -t xpilotd_port_t -p udp 32200-32299 &> /dev/null || :
/sbin/fixfiles -R %{name}-server restore || :
/sbin/service %{name}-server condrestart > /dev/null 2>&1 || :
%preun selinux
if [ "$1" -lt "1" ] ; then
# Disable the policy and restart the daemon
/usr/sbin/setsebool xpilotd_disable_trans 1 &> /dev/null || :
/sbin/service %{name}-server condrestart > /dev/null 2>&1 || :
# Unload the module
/usr/sbin/semanage port -d -t xpilotd_port_t -p udp 15345 &> /dev/null || :
/usr/sbin/semanage port -d -t xpilotd_port_t -p udp 32200-32299 &> /dev/null || :
for variant in %{selinux_variants} ; do
/usr/sbin/semodule -s ${variant} -r xpilotd &> /dev/null || :
done
# Set the context back
/sbin/fixfiles -R %{name}-server restore || :
fi
%postun selinux
if [ "$1" -ge "1" ] ; then
# Replace the module if it is already loaded. semodule -u also
# checks the module version
for variant in %{selinux_variants} ; do
/usr/sbin/semodule -u %{_datadir}/selinux/${variant}/xpilotd.pp || :
done
fi
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%{_bindir}/xpilot-ng-replay
%{_bindir}/xpilot-ng-sdl
%{_datadir}/appdata/xpilot-ng-sdl.appdata.xml
%{_datadir}/applications/xpilot-ng-sdl.desktop
%{_datadir}/icons/hicolor/48x48/apps/xpilot-ng.png
%{_mandir}/man6/xpilot-ng-replay.6.gz
%{_mandir}/man6/xpilot-ng-sdl.6.gz
%files data
%doc AUTHORS BUGS ChangeLog FEATURES README TODO
%license COPYING
%{_bindir}/xpilot-ng-x11
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/textures
%{_datadir}/%{name}/fonts
%{_datadir}/%{name}/sound
%files x11
%{_bindir}/xpilot-ng-x11
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/48x48/apps/*.png
%{_mandir}/man6/xpilot-ng-replay.6.gz
%{_mandir}/man6/xpilot-ng-sdl.6.gz
%{_mandir}/man6/xpilot-ng-x11.6.gz
%doc README COPYING
%files server
%{_sysusersdir}/xpilot-ng-server.conf
%defattr(-,root,root,-)
%{_bindir}/xpilot-ng-xp-mapedit
%{_bindir}/xpilot-ng-server
/lib/systemd/system/xpilot-ng-server.service
%{_initrddir}/xpilot-ng-server
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-server
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-server
%{_datadir}/%{name}
%exclude %{_datadir}/%{name}/textures
%exclude %{_datadir}/%{name}/fonts
%exclude %{_datadir}/%{name}/sound
%{_datadir}/appdata/xpilot-ng-server.metainfo.xml
%dir %{_sysconfdir}/%{name}
%config(noreplace) %attr(0600,xpilot,root) %{_sysconfdir}/%{name}/password.txt
%config(noreplace) %{_sysconfdir}/%{name}/defaults.txt
%config(noreplace) %{_sysconfdir}/%{name}/xpilot-ng-server-cmdline-opts
%{_mandir}/man6/xpilot-ng-server.6.gz
%{_mandir}/man6/xpilot-ng-xp-mapedit.6.gz
%doc README COPYING
%files selinux
%defattr(-,root,root,-)
%doc SELinux/*.??
%{_datadir}/selinux/*/xpilotd.pp
%files logwatch
%defattr(-,root,root,-)
%{logwatch_conf}/logfiles/%{name}.conf
%{logwatch_conf}/services/%{name}.conf
%{logwatch_scripts}/services/%{name}
%{logwatch_scripts}/shared/applyxpilotdate
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-39
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Mon Feb 2 2026 Hans de Goede <johannes.goede@oss.qualcomm.com> - 4.7.3-38
- Use sysusers to create xpilot user for xpilot-ng-server (rhbz#2432687)
* Sat Jan 24 2026 Hans de Goede <johannes.goede@oss.qualcomm.com> - 4.7.3-37
- Fix FTBFS (rhbz#2341581, rhbz#2385745)
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-35
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jul 26 2024 Miroslav Suchý <msuchy@redhat.com> - 4.7.3-33
- convert license to SPDX
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Jan 09 2024 Florian Weimer <fweimer@redhat.com> - 4.7.3-30
- Additional C compatibility fixes (#2155781)
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-28
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Dec 22 2022 Florian Weimer <fweimer@redhat.com> - 4.7.3-27
- C99 port (#2155781)
- Fix build issue due to SDL_Window identifier conflict with newer SDL
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-22
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sat Aug 10 2019 Hans de Goede <hdegoede@redhat.com> - 4.7.3-19
- Drop libXxf86misc-devel BuildRequires, all #if HAVE_XF86MISC code was
commented out already, so this does not influence xpilot-ng behavior
- Fix FTBFS (rhbz#1736985)
- Drop script for converting old format maps, because it is Python 2 only
- Fix a bunch of rpmlint warnings, ignore others
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 23 2019 Hans de Goede <hdegoede@redhat.com> - 4.7.3-17
- Fix FTBFS (rhbz#1676250)
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jan 18 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.7.3-13
- Remove obsolete scriptlets
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.7.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Sun Jan 31 2016 Hans de Goede <hdegoede@redhat.com> - 4.7.3-8
- Enable sound support
- Use systemd-rpm macros (rhbz#850373)
- Split out client data in a -data package, share it between client and server
- Split out libX11 client version into a -x11 package, drop .desktop for it
- Add appdata
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sun Feb 10 2013 Parag Nemade <paragn AT fedoraproject DOT org> - 4.7.3-3
- Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077
* Sun Jul 29 2012 Hans de Goede <hdegoede@redhat.com> - 4.7.3-2
- Move server cmdline config file to /etc/xpilot-ng, where all the other
config-files are. You can now find it here:
/etc/xpilot/xpilot-ng-server-cmdline-opts
* Sun Jul 29 2012 Hans de Goede <hdegoede@redhat.com> - 4.7.3-1
* Sun Jul 27 2012 Hans de Goede <hdegoede@redhat.com> - 4.7.2-22
- Fix a crash in the welcome screen (rhbz#830640)
- Upgrade to latest upstream 4.7.3
- Drop selinux module, it no longer compiles and selinux support belongs
in selinux-policy*, not in the apps themselves
- Replace sysv init script by a systemd unit file
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.2-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7.2-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
@ -380,10 +304,10 @@ install -pD -m 0644 %{SOURCE13} $RPM_BUILD_ROOT%{logwatch_scripts}/shared/applyx
* Mon Dec 01 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 4.7.2-15
- Rebuild for Python 2.6
* Mon Feb 18 2008 Wart <wart at kobold.org>
* Fri Feb 18 2008 Wart <wart at kobold.org>
- Better Sourceforge download URL
* Mon Feb 18 2008 Wart <wart at kobold.org> 4.7.2-14
* Fri Feb 18 2008 Wart <wart at kobold.org> 4.7.2-14
- Rebuild for gcc 4.3
* Thu Aug 23 2007 Wart <wart at kobold.org> 4.7.2-13

View file

@ -22,4 +22,7 @@
# of defaults.
# Also, explicitly disable reporting to the metaserver. Use
# -expand PublicSettings or -reportToMetaserver to enable.
XPILOTD_OPTIONS="-noQuit +reportToMetaServer -defaultsFileName /etc/xpilot-ng/defaults.txt -passwordFileName /etc/xpilot-ng/password.txt"
XPILOTD_OPTIONS="-noQuit \
+reportToMetaServer \
-defaultsFileName /etc/xpilot-ng/defaults.txt \
-passwordFileName /etc/xpilot-ng/password.txt"

7
xpilotd.fc Normal file
View file

@ -0,0 +1,7 @@
# xpilot-ng-server executable will have:
# label: system_u:object_r:xpilotd_exec_t
# MLS sensitivity: s0
# MCS categories: <none>
/usr/bin/xpilot-ng-server -- gen_context(system_u:object_r:xpilotd_exec_t,s0)
/etc/xpilot-ng(/.*)? gen_context(system_u:object_r:xpilotd_private_data_t)

24
xpilotd.if Normal file
View file

@ -0,0 +1,24 @@
## <summary>policy for xpilot-ng</summary>
########################################
## <summary>
## Execute a domain transition to run xpilot-ng-server.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`xpilotd_domtrans',`
gen_require(`
type xpilotd_t, xpilotd_exec_t;
')
domain_auto_trans($1,xpilotd_exec_t,xpilotd_t)
allow $1 xpilotd_t:fd use;
allow xpilotd_t $1:fd use;
allow xpilotd_t $1:fifo_file rw_file_perms;
allow xpilotd_t $1:process sigchld;
')

75
xpilotd.te Normal file
View file

@ -0,0 +1,75 @@
policy_module(xpilotd,1.0.0)
########################################
#
# Declarations
#
gen_require(`
type port_t;
attribute port_type;
type var_log_t;
')
type xpilotd_port_t, port_type;
type xpilotd_t;
type xpilotd_exec_t;
domain_type(xpilotd_t)
init_daemon_domain(xpilotd_t, xpilotd_exec_t)
# pid files
type xpilotd_var_run_t;
files_pid_file(xpilotd_var_run_t)
# Game data files
type xpilotd_private_data_t;
files_type(xpilotd_private_data_t);
########################################
#
# xpilot local policy
#
# Check in /etc/selinux/refpolicy/include for macros to use instead of allow rules.
# Note: /usr/share/selinux/devel/include/support/obj_perm_sets.spt contains
# the definitions of many permissions, such as 'rw_dir_perms'
# Some common macros (you might be able to remove some)
files_read_usr_files(xpilotd_t)
files_read_etc_files(xpilotd_t)
libs_use_ld_so(xpilotd_t)
libs_use_shared_libs(xpilotd_t)
miscfiles_read_localization(xpilotd_t)
## internal communication is often done using fifo and unix sockets.
allow xpilotd_t self:fifo_file { read write };
allow xpilotd_t self:unix_stream_socket create_stream_socket_perms;
# log files
allow xpilotd_t var_log_t:file rw_file_perms ;
## Networking basics (adjust to your needs!)
sysnet_dns_name_resolve(xpilotd_t)
corenet_udp_bind_all_nodes(xpilotd_t)
corenet_all_recvfrom_unlabeled(xpilotd_t)
corenet_udp_sendrecv_all_ports(xpilotd_t)
allow xpilotd_t xpilotd_port_t:udp_socket { name_bind };
# Init script handling
init_use_fds(xpilotd_t)
init_use_script_ptys(xpilotd_t)
domain_use_interactive_fds(xpilotd_t)
# Game private data
allow xpilotd_t xpilotd_private_data_t:file { r_file_perms };
allow xpilotd_t xpilotd_private_data_t:dir search;
# Misc rules that are needed. I don't understand the meaning of some
# of these, and for others I don't yet understand why the game needs
# them
kernel_read_system_state(xpilotd_t)
allow xpilotd_t self:process signal;