Merge pull request #273 from odysseus654/feature/pkg-scripts-vircadia

package scripts: renaming athena -> vircadia
This commit is contained in:
kasenvr 2020-06-07 01:24:12 -04:00 committed by GitHub
commit 1615af94c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 582 additions and 479 deletions

View file

@ -19,25 +19,25 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get install -y tzdata supervisor ${DEPENDS} && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
mkdir -p /var/lib/athena
RUN groupadd -r athena ; \
useradd -Nr athena -d /var/lib/athena ; \
usermod -aG athena athena ; \
chown athena.athena /var/lib/athena ; \
mkdir -p /var/lib/vircadia
RUN groupadd -r vircadia ; \
useradd -Nr vircadia -d /var/lib/vircadia ; \
usermod -aG vircadia vircadia ; \
chown vircadia.vircadia /var/lib/vircadia ; \
exit 0
VOLUME /var/lib/athena
VOLUME /var/lib/vircadia
RUN mkdir -p /var/run ; chmod 777 /var/run
COPY athena.conf /etc/supervisor/conf.d/athena.conf
COPY vircadia.conf /etc/supervisor/conf.d/vircadia.conf
COPY entrypoint.sh /
COPY opt /opt/athena
COPY lib /opt/athena/lib
COPY opt /opt/vircadia
COPY lib /opt/vircadia/lib
ENTRYPOINT ["/entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/athena.conf"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/vircadia.conf"]
LABEL \
net.projectathena.gitsrc="${GITSRC}" \
net.projectathena.gitdate="${GITDATE}" \
net.projectathena.gitcommit="${GITCOMMIT}"
net.vircadia.gitsrc="${GITSRC}" \
net.vircadia.gitdate="${GITDATE}" \
net.vircadia.gitcommit="${GITCOMMIT}"

View file

@ -1,5 +1,5 @@
Collection of scripts to create server distribution packages. Most of these scripts assume
use of the build script at https://github.com/daleglass/athena-builder, specifically that
use of the build script at https://github.com/kasenvr/vircadia-builder, specifically that
the following directory structure exists
base folder/
@ -9,7 +9,7 @@ base folder/
These scripts assume that the current directory is the pkg-scripts folder inside of the source directory
and that the base folder can be reached by going to "../..". This may not work if pkg-scripts is a symlink;
adding an ATHENA=~/Athena to the beginning of the commandline will override where it looks for the base folder
adding an VIRCADIA=~/Vircadia to the beginning of the commandline will override where it looks for the base folder
Ubuntu:
DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server
@ -30,24 +30,24 @@ Docker:
Results:
The following directory structure is created for binaries:
/opt/athena - executables
/opt/athena/lib - private shared libraries required for executables
/opt/athena/resources - files required by domain-server administrative website
/opt/athena/plugins - files required by assignment-client, mainly for audio codecs
/opt/vircadia - executables
/opt/vircadia/lib - private shared libraries required for executables
/opt/vircadia/resources - files required by domain-server administrative website
/opt/vircadia/plugins - files required by assignment-client, mainly for audio codecs
The following systemd services are installed in /usr/lib/systemd/system:
athena-assignment-client.service
athena-domain-server.service
athena-server.target - used to launch/shutdown the two prior services
athena-assignment-client@.service
athena-domain-server@.service
athena-server@.target - used to launch/shutdown the two prior services
vircadia-assignment-client.service
vircadia-domain-server.service
vircadia-server.target - used to launch/shutdown the two prior services
vircadia-assignment-client@.service
vircadia-domain-server@.service
vircadia-server@.target - used to launch/shutdown the two prior services
The top three services in this list are the "normal" services that launch Athena
The top three services in this list are the "normal" services that launch Vircadia
in the typical fashion. The bottom three services are "template" services designed
to permit multiple services to be installed and running on a single machine.
The script "/opt/athena/new-server serverName basePort" will do the necessary
The script "/opt/vircadia/new-server serverName basePort" will do the necessary
setup for a new domain with the specified server name and port. Upon installation
the package will create and launch a domain named "default" at base port 40100.
The domain name here has nothing to do with the name people will use to find your
@ -55,6 +55,6 @@ Results:
used to configure and run the domain on your server.
The server stores its files in the following locations:
/var/lib/athena/.local - "unnamed" services (the default location for Athena servers)
/var/lib/athena/serverName - "named" (template) domains
/etc/opt/athena - environment variables when launching named domains
/var/lib/vircadia/.local - "unnamed" services (the default location for Vircadia servers)
/var/lib/vircadia/serverName - "named" (template) domains
/etc/opt/vircadia - environment variables when launching named domains

View file

@ -1,18 +0,0 @@
[Unit]
Description=Assignment client service for Athena server
After=network.target
PartOf=athena-server.target
[Service]
Restart=always
WorkingDirectory=/opt/athena
Environment="LD_LIBRARY_PATH=/opt/athena/lib"
User=athena
Group=athena
#LimitCORE=infinity
#ExecStart=/opt/athena/assignment-client -n 6
ExecStart=/opt/athena/assignment-client --min 6 --max 20
[Install]
WantedBy=multi-user.target

View file

@ -1,20 +0,0 @@
[Unit]
Description=Assignment client service for Athena server
After=network.target
PartOf=athena-server@%i.target
[Service]
Restart=always
WorkingDirectory=/opt/athena
EnvironmentFile=/etc/opt/athena/%i.conf
Environment="LD_LIBRARY_PATH=/opt/athena/lib" "HOME=/var/lib/athena/%i"
PrivateTmp=true
User=athena
Group=athena
#LimitCORE=infinity
#ExecStart=/opt/athena/assignment-client -n 6
ExecStart=/opt/athena/assignment-client --min 6 --max 20 --server-port $HIFI_DOMAIN_SERVER_PORT
[Install]
WantedBy=multi-user.target

View file

@ -1,18 +0,0 @@
[Unit]
Description=Domain Server service for Athena
After=network.target
PartOf=athena-server.target
[Service]
Restart=on-failure
WorkingDirectory=/opt/athena
Environment="LD_LIBRARY_PATH=/opt/athena/lib"
User=athena
Group=athena
#LimitCORE=infinity
#ExecStartPre=/bin/bash -c 'if /usr/bin/pgrep -l domain-server; then /usr/bin/pkill -SIGKILL -f /usr/share/hifi/domain-server/domain-server; fi'
ExecStart=/opt/athena/domain-server
[Install]
WantedBy=multi-user.target

View file

@ -1,20 +0,0 @@
[Unit]
Description=Domain Server service for Athena
After=network.target
PartOf=athena-server@%i.target
[Service]
Restart=on-failure
WorkingDirectory=/opt/athena
EnvironmentFile=/etc/opt/athena/%i.conf
Environment="LD_LIBRARY_PATH=/opt/athena/lib" "HOME=/var/lib/athena/%i"
PrivateTmp=true
User=athena
Group=athena
#LimitCORE=infinity
#ExecStartPre=/bin/bash -c 'if /usr/bin/pgrep -l domain-server; then /usr/bin/pkill -SIGKILL -f /usr/share/hifi/domain-server/domain-server; fi'
ExecStart=/opt/athena/domain-server
[Install]
WantedBy=multi-user.target

View file

@ -1,128 +0,0 @@
#ATHENA=~/Athena rpmbuild --target x86_64 -bb athena-server.spec
%define version %{lua:print(os.getenv("VERSION"))}
%define depends %{lua:print(os.getenv("DEPENDS"))}
Name: athena-server
Version: %{version}
Release: 1%{?dist}
Summary: Project Athena metaverse platform, based on the High Fidelity Engine.
License: ASL 2.0
URL: https://projectathena.io
Source0: https://github.com/daleglass/athena-builder/blob/master/athena_builder
#BuildRequires: systemd-rpm-macros
BuildRequires: chrpath
Requires: %{depends}
BuildArch: x86_64
AutoReq: no
AutoProv: no
%description
Project Athena allows creation and sharing of VR experiences.
The Project Athena metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment.
%prep
%build
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/opt/athena
install -m 0755 -t $RPM_BUILD_ROOT/opt/athena $ATHENA/build/assignment-client/assignment-client
install -m 0755 -t $RPM_BUILD_ROOT/opt/athena $ATHENA/build/domain-server/domain-server
install -m 0755 -t $RPM_BUILD_ROOT/opt/athena $ATHENA/build/tools/oven/oven
#install -m 0755 -t $RPM_BUILD_ROOT/opt/athena $ATHENA/build/ice-server/ice-server
strip --strip-all $RPM_BUILD_ROOT/opt/athena/*
chrpath -d $RPM_BUILD_ROOT/opt/athena/*
install -m 0755 -t $RPM_BUILD_ROOT/opt/athena $ATHENA/source/pkg-scripts/new-server
install -d $RPM_BUILD_ROOT/opt/athena/lib
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/build/libraries/*/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/athena/lib/*
chrpath -d $RPM_BUILD_ROOT/opt/athena/lib/*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Network.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Core.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Gui.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Script.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Quick.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5Qml.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/athena/lib $ATHENA/build/ext/makefiles/quazip/project/lib/libquazip5.so.*.*.*
install -d $RPM_BUILD_ROOT/usr/lib/systemd/system
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-assignment-client.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-assignment-client@.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-domain-server.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-domain-server@.service
#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-ice-server.service
#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-ice-server@.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-server.target
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/athena-server@.target
cp -a $ATHENA/source/domain-server/resources $RPM_BUILD_ROOT/opt/athena
cp -a $ATHENA/build/assignment-client/plugins $RPM_BUILD_ROOT/opt/athena
chrpath -d $RPM_BUILD_ROOT/opt/athena/plugins/*.so
chrpath -d $RPM_BUILD_ROOT/opt/athena/plugins/*/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/athena/plugins/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/athena/plugins/*/*.so
find $RPM_BUILD_ROOT/opt/athena/resources -name ".gitignore" -delete
%files
%license $ATHENA/source/LICENSE
/opt/athena
/usr/lib/systemd/system
%changelog
%post
# create users
getent passwd athena >/dev/numm 2>&1 || useradd -r -c "Project Athena" -d /var/lib/athena -U -M athena
#getent group athena >/dev/null 2>&1 || groupadd -r athena
# create data folder
mkdir -p /etc/opt/athena
mkdir -p /var/lib/athena && chown athena:athena /var/lib/athena && chmod 775 /var/lib/athena
ldconfig -n /opt/athena/lib
if [ ! -d "/var/lib/athena/default" ]; then
/opt/athena/new-server default 40100
systemctl enable athena-server@default.target
systemctl start athena-server@default.target
fi
%systemd_post athena-assignment-client.service
%systemd_post athena-assignment-client@.service
%systemd_post athena-domain-server.service
%systemd_post athena-domain-server@.service
#%systemd_post athena-ice-server.service
#%systemd_post athena-ice-server@.service
%systemd_post athena-server.target
%systemd_post athena-server@.target
%preun
%systemd_preun athena-server.target
%systemd_preun athena-server@.target
%systemd_preun athena-assignment-client.service
%systemd_preun athena-assignment-client@.service
%systemd_preun athena-domain-server.service
%systemd_preun athena-domain-server@.service
#%systemd_preun athena-ice-server.service
#%systemd_preun athena-ice-server@.service
%postun
%systemd_postun_with_restart athena-server.target
%systemd_postun_with_restart athena-server@.target
%systemd_postun_with_restart athena-assignment-client.service
%systemd_postun_with_restart athena-assignment-client@.service
%systemd_postun_with_restart athena-domain-server.service
%systemd_postun_with_restart athena-domain-server@.service
#%systemd_postun_with_restart athena-ice-server.service
#%systemd_postun_with_restart athena-ice-server@.service

View file

@ -1,11 +0,0 @@
[Unit]
Description=Athena virtual domain
Wants=athena-assignment-client.service
Wants=athena-domain-server.service
#Wants=athena-ice-server.service
After=athena-assignment-client.service
After=athena-domain-server.service
#After=athena-ice-server.service
[Install]
WantedBy=multi-user.target

View file

@ -1,11 +0,0 @@
[Unit]
Description=Athena virtual domain
Wants=athena-assignment-client@%i.service
Wants=athena-domain-server@%i.service
#Wants=athena-ice-server@%i.service
After=athena-assignment-client@%i.service
After=athena-domain-server@%i.service
#After=athena-ice-server@%i.service
[Install]
WantedBy=multi-user.target

View file

@ -6,23 +6,23 @@ set -x
# allowing the container to be run directly as Jenkins. In Dev, or on unknown
# environments, run the container as root to automatically correct docker
# group in container to match the docker.sock GID mounted from the host.
if [ -f /var/lib/athena/.local -a "$(id -u)" = "0" ]; then
if [ -f /var/lib/vircadia/.local -a "$(id -u)" = "0" ]; then
# realign gid
THIS_ATHENA_GID=`ls -ngd /var/lib/athena/.local | cut -f3 -d' '`
CUR_ATHENA_GID=`getent group athena | cut -f3 -d: || true`
if [ ! -z "$THIS_ATHENA_GID" -a "$THIS_ATHENA_GID" != "$CUR_ATHENA_GID" ]; then
groupmod -g ${THIS_ATHENA_GID} -o athena
THIS_VIRCADIA_GID=`ls -ngd /var/lib/vircadia/.local | cut -f3 -d' '`
CUR_VIRCADIA_GID=`getent group vircadia | cut -f3 -d: || true`
if [ ! -z "$THIS_VIRCADIA_GID" -a "$THIS_VIRCADIA_GID" != "$CUR_VIRCADIA_GID" ]; then
groupmod -g ${THIS_VIRCADIA_GID} -o vircadia
fi
# realign pid
THIS_ATHENA_PID=`ls -nd /var/lib/athena/.local | cut -f3 -d' '`
CUR_ATHENA_PID=`getent passwd athena | cut -f3 -d: || true`
if [ ! -z "$THIS_ATHENA_PID" -a "$THIS_ATHENA_PID" != "$CUR_ATHENA_PID" ]; then
usermod -u ${THIS_ATHENA_PID} -o athena
THIS_VIRCADIA_PID=`ls -nd /var/lib/vircadia/.local | cut -f3 -d' '`
CUR_VIRCADIA_PID=`getent passwd vircadia | cut -f3 -d: || true`
if [ ! -z "$THIS_VIRCADIA_PID" -a "$THIS_VIRCADIA_PID" != "$CUR_VIRCADIA_PID" ]; then
usermod -u ${THIS_VIRCADIA_PID} -o vircadia
fi
if ! groups athena | grep -q athena; then
usermod -aG athena athena
if ! groups vircadia | grep -q vircadia; then
usermod -aG vircadia vircadia
fi
fi

View file

@ -1,74 +1,74 @@
[supervisord]
user=athena
user=vircadia
nodaemon=true
environment=HOME="/var/lib/athena",USER="athena",LD_LIBRARY_PATH="/opt/athena/lib"
environment=HOME="/var/lib/vircadia",USER="vircadia",LD_LIBRARY_PATH="/opt/vircadia/lib"
logfile=/dev/stdout
logfile_maxbytes=0
pidfile=/var/run/supervisord.pid
[program:domain-server]
command=/opt/athena/domain-server
command=/opt/vircadia/domain-server
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
[program:audio-mixer]
command=/opt/athena/assignment-client -t 0 -a localhost -p 48000
command=/opt/vircadia/assignment-client -t 0 -a localhost -p 48000
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:avatar-mixer]
command=/opt/athena/assignment-client -t 1 -a localhost -p 48001
command=/opt/vircadia/assignment-client -t 1 -a localhost -p 48001
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:entities-server]
command=/opt/athena/assignment-client -t 6 -a localhost -p 48006
command=/opt/vircadia/assignment-client -t 6 -a localhost -p 48006
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:asset-server]
command=/opt/athena/assignment-client -t 3 -a localhost -p 48003
command=/opt/vircadia/assignment-client -t 3 -a localhost -p 48003
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:entity-script-server]
command=/opt/athena/assignment-client -t 5 -a localhost -p 48005
command=/opt/vircadia/assignment-client -t 5 -a localhost -p 48005
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:messages-mixer]
command=/opt/athena/assignment-client -t 4 -a localhost -p 48004
command=/opt/vircadia/assignment-client -t 4 -a localhost -p 48004
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:scripted-agent]
command=/opt/athena/assignment-client -t 2 -a localhost --max 100
command=/opt/vircadia/assignment-client -t 2 -a localhost --max 100
autorestart=unexpected
directory=/opt/athena
directory=/opt/vircadia
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr

View file

@ -1,107 +1,99 @@
#!/bin/sh
if [ "$ATHENA" = "" ]; then
ATHENA=`realpath ../..`
if [ "$VIRCADIA" = "" ]; then
VIRCADIA=`realpath ../..`
fi
GITDATE=`git -C $ATHENA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"`
GITCOMMIT=`git -C $ATHENA/source rev-parse HEAD | cut -c 1-7`
VERSION=0.86.0-k2-$GITDATE-$GITCOMMIT
GITDATE=`git -C $VIRCADIA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"`
GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7`
VERSION=2020.2.0-asteria-$GITDATE-$GITCOMMIT
sudo apt-get install chrpath binutils dh-make
DEB_BUILD_ROOT=temp-make-deb/athena-server-$VERSION-0ubuntu1
DEB_BUILD_ROOT=temp-make-deb/vircadia-server-$VERSION-0ubuntu1
rm -r temp-make-deb
mkdir -p $DEB_BUILD_ROOT
# copy the files over
cp $ATHENA/build/assignment-client/assignment-client $DEB_BUILD_ROOT
cp $ATHENA/build/domain-server/domain-server $DEB_BUILD_ROOT
cp $ATHENA/build/tools/oven/oven $DEB_BUILD_ROOT
cp $ATHENA/build/libraries/*/*.so $DEB_BUILD_ROOT
#cp $ATHENA/build/ice-server/ice-server $DEB_BUILD_ROOT
cp $VIRCADIA/build/assignment-client/assignment-client $DEB_BUILD_ROOT
cp $VIRCADIA/build/domain-server/domain-server $DEB_BUILD_ROOT
cp $VIRCADIA/build/tools/oven/oven $DEB_BUILD_ROOT
cp $VIRCADIA/build/libraries/*/*.so $DEB_BUILD_ROOT
#cp $VIRCADIA/build/ice-server/ice-server $DEB_BUILD_ROOT
chrpath -d $DEB_BUILD_ROOT/*
cp $ATHENA/qt5-install/lib/libQt5Network.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Core.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Gui.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Script.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Quick.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Qml.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/build/ext/makefiles/quazip/project/lib/libquazip5.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* $DEB_BUILD_ROOT
cp $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* $DEB_BUILD_ROOT
chmod +x $DEB_BUILD_ROOT/*.so.*.*.*
strip --strip-all $DEB_BUILD_ROOT/*
cp $ATHENA/source/pkg-scripts/new-server $DEB_BUILD_ROOT
cp -a $ATHENA/source/domain-server/resources $DEB_BUILD_ROOT
cp $VIRCADIA/source/pkg-scripts/new-server $DEB_BUILD_ROOT
cp -a $VIRCADIA/source/domain-server/resources $DEB_BUILD_ROOT
find $DEB_BUILD_ROOT/resources -name ".gitignore" -delete
find $DEB_BUILD_ROOT/resources -type f -executable -exec sh -c 'chmod -x {}' \;
cp $ATHENA/source/README.md $DEB_BUILD_ROOT
cp $ATHENA/source/README_hifi.md $DEB_BUILD_ROOT
cp -a $ATHENA/build/assignment-client/plugins $DEB_BUILD_ROOT
cp $VIRCADIA/source/README.md $DEB_BUILD_ROOT
cp $VIRCADIA/source/README_hifi.md $DEB_BUILD_ROOT
cp -a $VIRCADIA/build/assignment-client/plugins $DEB_BUILD_ROOT
strip --strip-all $DEB_BUILD_ROOT/plugins/*.so
strip --strip-all $DEB_BUILD_ROOT/plugins/*/*.so
#begin the debian package construction
cd $DEB_BUILD_ROOT
dh_make -p athena-server_$VERSION-0ubuntu1 -c apache -s --createorig -y
dh_make -p vircadia-server_$VERSION-0ubuntu1 -c apache -s --createorig -y
cp $ATHENA/source/pkg-scripts/athena-assignment-client.service debian
cp $ATHENA/source/pkg-scripts/athena-assignment-client@.service debian
cp $ATHENA/source/pkg-scripts/athena-domain-server.service debian
cp $ATHENA/source/pkg-scripts/athena-domain-server@.service debian
#cp $ATHENA/source/pkg-scripts/athena-ice-server.service debian
#cp $ATHENA/source/pkg-scripts/athena-ice-server@.service debian
cp $ATHENA/source/pkg-scripts/athena-server.target debian
cp $ATHENA/source/pkg-scripts/athena-server@.target debian
cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client.service debian
cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client@.service debian
cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server.service debian
cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server@.service debian
#cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server.service debian
#cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server@.service debian
cp $VIRCADIA/source/pkg-scripts/vircadia-server.target debian
cp $VIRCADIA/source/pkg-scripts/vircadia-server@.target debian
cp $ATHENA/source/pkg-scripts/server-control debian/control
cp $ATHENA/source/pkg-scripts/server-prerm debian/prerm
cp $ATHENA/source/pkg-scripts/server-postinst debian/postinst
cp $ATHENA/source/LICENSE debian/copyright
cp $VIRCADIA/source/pkg-scripts/server-control debian/control
cp $VIRCADIA/source/pkg-scripts/server-prerm debian/prerm
cp $VIRCADIA/source/pkg-scripts/server-postinst debian/postinst
cp $VIRCADIA/source/pkg-scripts/server-postrm debian/postrm
cp $VIRCADIA/source/LICENSE debian/copyright
echo /etc/opt/athena > debian/dirs
echo /var/lib/athena >> debian/dirs
echo /etc/opt/vircadia > debian/dirs
echo /var/lib/vircadia >> debian/dirs
echo README.md > debian/docs
echo README_hifi.md >> debian/docs
echo assignment-client opt/athena > debian/install
echo domain-server opt/athena >> debian/install
echo oven opt/athena >> debian/install
#echo ice-server opt/athena >> debian/install
echo new-server opt/athena >> debian/install
echo assignment-client opt/vircadia > debian/install
echo domain-server opt/vircadia >> debian/install
echo oven opt/vircadia >> debian/install
#echo ice-server opt/vircadia >> debian/install
echo new-server opt/vircadia >> debian/install
for so in *.so.*.*.*; do
echo $so opt/athena/lib >> debian/install
echo $so opt/vircadia/lib >> debian/install
done
for so in *.so; do
echo $so opt/athena/lib >> debian/install
echo $so opt/vircadia/lib >> debian/install
done
#for service in *.service; do
# echo $service opt/athena/systemd >> debian/install
# echo $service opt/vircadia/systemd >> debian/install
#done
#for target in *.target; do
# echo $target opt/athena/systemd >> debian/install
# echo $target opt/vircadia/systemd >> debian/install
#done
find resources -type f -exec sh -c 'echo {} opt/athena/$(dirname "{}") >> debian/install' \;
find plugins -type f -exec sh -c 'echo {} opt/athena/$(dirname "{}") >> debian/install' \;
find resources -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \;
find plugins -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \;
#echo usr/lib/systemd/system/athena-assignment-client.service opt/athena/systemd/athena-assignment-client.service > debian/athena-server.links
#echo usr/lib/systemd/system/athena-assignment-client@.service opt/athena/systemd/athena-assignment-client@.service >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-domain-server.service opt/athena/systemd/athena-domain-server.service >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-domain-server@.service opt/athena/systemd/athena-domain-server@.service >> debian/athena-server.links
##echo usr/lib/systemd/system/athena-ice-server.service opt/athena/systemd/athena-ice-server.service >> debian/athena-server.links
##echo usr/lib/systemd/system/athena-ice-server@.service opt/athena/systemd/athena-ice-server@.service >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-server.target opt/athena/systemd/athena-server.target >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-server@.target opt/athena/systemd/athena-server@.target >> debian/athena-server.links
SOFILES=`ls *.so *.so.*.*.* | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s`
SOFILES=`ls *.so *.so.*.*.* | sed 's/\./\\\./g' | paste -d'|' -s`
DEPENDS=`find * -path debian -prune -o -type f -executable -exec sh -c 'objdump -p {} | grep NEEDED' \; \
| awk '{print $2}' | sort | uniq | egrep -v "^($SOFILES)$" \
| xargs -n 1 -I {} sh -c 'dpkg -S {} | head -n 1' | cut -d ':' -f 1 | sort | uniq | paste -d',' -s`
DEPENDS=`find * -type f -executable -exec sh -c 'objdump -p {} | grep NEEDED' \; | awk '{print $2}' | sort | uniq | egrep -v "^($SOFILES)$" | xargs -n 1 -I {} sh -c 'dpkg -S {} | head -n 1' | cut -d ':' -f 1 | sort | uniq | paste -d',' -s`
cp $ATHENA/source/pkg-scripts/server-rules debian/rules
sed "s/{DEPENDS}/$DEPENDS/" $ATHENA/source/pkg-scripts/server-control > debian/control
cp $VIRCADIA/source/pkg-scripts/server-rules debian/rules
sed "s/{DEPENDS}/$DEPENDS/" $VIRCADIA/source/pkg-scripts/server-control > debian/control
dpkg-buildpackage -us -uc

View file

@ -1,53 +1,51 @@
#!/bin/sh
if [ "$ATHENA" = "" ]; then
ATHENA=`realpath ../..`
if [ "$VIRCADIA" = "" ]; then
VIRCADIA=`realpath ../..`
fi
GITSRC=`git -C $ATHENA/source config --get remote.origin.url | cut -d':' -f 2`
GITDATE=`git -C $ATHENA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"`
GITCOMMIT=`git -C $ATHENA/source rev-parse HEAD | cut -c 1-7`
GITSRC=`git -C $VIRCADIA/source config --get remote.origin.url | cut -d':' -f 2`
GITDATE=`git -C $VIRCADIA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"`
GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7`
sudo apt-get install chrpath binutils
DOCK_BUILD_ROOT=temp-make-dock
rm -r temp-make-dock
mkdir -p $DOCK_BUILD_ROOT
cp $ATHENA/source/pkg-scripts/Dockerfile.templ $DOCK_BUILD_ROOT/Dockerfile
cp $ATHENA/source/pkg-scripts/docker-entrypoint.sh $DOCK_BUILD_ROOT/entrypoint.sh
cp $ATHENA/source/pkg-scripts/docker-athena-supervisor.conf $DOCK_BUILD_ROOT/athena.conf
cp $VIRCADIA/source/pkg-scripts/Dockerfile.templ $DOCK_BUILD_ROOT/Dockerfile
cp $VIRCADIA/source/pkg-scripts/docker-entrypoint.sh $DOCK_BUILD_ROOT/entrypoint.sh
cp $VIRCADIA/source/pkg-scripts/docker-vircadia-supervisor.conf $DOCK_BUILD_ROOT/vircadia.conf
# copy the files over
mkdir -p $DOCK_BUILD_ROOT/opt
cp $ATHENA/build/assignment-client/assignment-client $DOCK_BUILD_ROOT/opt
cp $ATHENA/build/domain-server/domain-server $DOCK_BUILD_ROOT/opt
cp $ATHENA/build/tools/oven/oven $DOCK_BUILD_ROOT/opt
#cp $ATHENA/build/ice-server/ice-server $DOCK_BUILD_ROOT/opt
cp $VIRCADIA/build/assignment-client/assignment-client $DOCK_BUILD_ROOT/opt
cp $VIRCADIA/build/domain-server/domain-server $DOCK_BUILD_ROOT/opt
cp $VIRCADIA/build/tools/oven/oven $DOCK_BUILD_ROOT/opt
#cp $VIRCADIA/build/ice-server/ice-server $DOCK_BUILD_ROOT/opt
strip --strip-all $DOCK_BUILD_ROOT/opt/*
chrpath -d $DOCK_BUILD_ROOT/opt/*
cp -a $ATHENA/build/assignment-client/plugins $DOCK_BUILD_ROOT/opt
cp -a $VIRCADIA/build/assignment-client/plugins $DOCK_BUILD_ROOT/opt
strip --strip-all $DOCK_BUILD_ROOT/opt/plugins/*.so
chrpath -d $DOCK_BUILD_ROOT/opt/plugins/*.so
strip --strip-all $DOCK_BUILD_ROOT/opt/plugins/*/*.so
chrpath -d $DOCK_BUILD_ROOT/opt/plugins/*/*.so
cp -a $ATHENA/source/domain-server/resources $DOCK_BUILD_ROOT/opt
cp -a $VIRCADIA/source/domain-server/resources $DOCK_BUILD_ROOT/opt
find $DOCK_BUILD_ROOT/opt/resources -name ".gitignore" -delete
find $DOCK_BUILD_ROOT/opt/resources -type f -executable -exec sh -c 'chmod -x {}' \;
mkdir -p $DOCK_BUILD_ROOT/lib
cp $ATHENA/build/libraries/*/*.so $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Network.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Core.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Gui.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Script.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Quick.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Qml.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/build/ext/makefiles/quazip/project/lib/libquazip5.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/build/libraries/*/*.so $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* $DOCK_BUILD_ROOT/lib
chmod +x $DOCK_BUILD_ROOT/lib/*
strip --strip-all $DOCK_BUILD_ROOT/lib/*
chrpath -d $DOCK_BUILD_ROOT/lib/*
@ -57,4 +55,4 @@ SOFILES=`ls $DOCK_BUILD_ROOT/lib | sed 's/\./\\\./g' | paste -d'|' -s`
DEPENDS=`find $DOCK_BUILD_ROOT/opt $DOCK_BUILD_ROOT/lib -type f -executable -exec sh -c 'objdump -p {} | grep NEEDED' \; | awk '{print $2}' | sort | uniq | egrep -v "^($SOFILES)$" | xargs -n 1 -I {} sh -c 'dpkg -S {} | head -n 1' | cut -d ':' -f 1 | sort | uniq | paste -d' ' -s`
cd $DOCK_BUILD_ROOT
docker build -t odysseus654/athena-server --build-arg "DEPENDS=$DEPENDS" --build-arg "GITSRC=$GITSRC" --build-arg "GITDATE=$GITDATE" --build-arg "GITCOMMIT=$GITCOMMIT" .
docker build -t odysseus654/vircadia-server --build-arg "DEPENDS=$DEPENDS" --build-arg "GITSRC=$GITSRC" --build-arg "GITDATE=$GITDATE" --build-arg "GITCOMMIT=$GITCOMMIT" .

View file

@ -1,44 +1,42 @@
#!/bin/sh
if [ "$ATHENA" = "" ]; then
ATHENA=`realpath ../..`
if [ "$VIRCADIA" = "" ]; then
VIRCADIA=`realpath ../..`
fi
GITDATE=`git -C $ATHENA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"`
GITCOMMIT=`git -C $ATHENA/source rev-parse HEAD | cut -c 1-7`
VERSION=0.86.0_K2_${GITDATE}_${GITCOMMIT}
GITDATE=`git -C $VIRCADIA/source log -n 1 --format=raw | grep author | cut -d">" -f 2 | cut -d" " -f 2 | xargs -I {} date -d @{} +"%Y%m%d"`
GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7`
VERSION=2020.2.0_ASTERIA_${GITDATE}_${GITCOMMIT}
SOFILES=`ls \
$ATHENA/build/libraries/*/*.so \
$ATHENA/qt5-install/lib/libQt5Network.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Core.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Gui.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Script.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Quick.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Qml.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \
$ATHENA/build/ext/makefiles/quazip/project/lib/libquazip5.so.*.*.* \
$VIRCADIA/build/libraries/*/*.so \
$VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Quick.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \
| sed 's/\./\\\./g' \
| paste -d'|' -s`
DEPENDS=mesa-libGL,`ls \
$ATHENA/build/assignment-client/assignment-client \
$ATHENA/build/domain-server/domain-server \
$ATHENA/build/tools/oven/oven \
$ATHENA/build/libraries/*/*.so \
$ATHENA/qt5-install/lib/libQt5Network.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Core.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Gui.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Script.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Quick.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5Qml.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \
$ATHENA/build/ext/makefiles/quazip/project/lib/libquazip5.so.*.*.* \
$ATHENA/build/assignment-client/plugins/*.so \
$ATHENA/build/assignment-client/plugins/*/*.so \
$VIRCADIA/build/assignment-client/assignment-client \
$VIRCADIA/build/domain-server/domain-server \
$VIRCADIA/build/tools/oven/oven \
$VIRCADIA/build/libraries/*/*.so \
$VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5Quick.so.*.*.* \
$VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \
$VIRCADIA/build/assignment-client/plugins/*.so \
$VIRCADIA/build/assignment-client/plugins/*/*.so \
| xargs -I {} sh -c 'objdump -p {} | grep NEEDED' \
| awk '{print $2}' \
| sort | uniq \
@ -51,6 +49,6 @@ DEPENDS=mesa-libGL,`ls \
sudo yum install chrpath
export VERSION DEPENDS ATHENA
rpmbuild --target x86_64 -bb ./athena-server.spec
export VERSION DEPENDS VIRCADIA
rpmbuild --target x86_64 -bb ./vircadia-server.spec
mv ~/rpmbuild/RPMS/x86_64/*.rpm .

View file

@ -2,13 +2,13 @@
if [ -z "$1" ] || [ -z "$2" ]; then
echo "new-server {name} {base-port}"
echo
echo "Sets up a new athena server with the specified name and base port number"
echo "Sets up a new vircadia server with the specified name and base port number"
echo " {name} - a simple name used to identify the server to scripts (not used in the server configuration)"
echo " {base-port} - the base port number (default server is 40100). The metaverse port will be {base-port}+2"
echo " Four contiguous port numbers are allocated, these must not overlap with other running services on this machine"
echo
echo "Launching a server created by this script is done with:"
echo " sudo systemctl start athena-server@{name}.target"
echo " sudo systemctl start vircadia-server@{name}.target"
echo
exit 1
fi
@ -20,30 +20,30 @@ if [ "$(id -u)" -ne 0 ]; then
exit 1
fi
if [ -d "/var/lib/athena/$1" ]; then
echo "Path /var/lib/athena/$1 already exists"
if [ -d "/var/lib/vircadia/$1" ]; then
echo "Path /var/lib/vircadia/$1 already exists"
echo
echo "Please remove this path first if you wish to recreate this server"
exit 2
fi
mkdir -p /var/lib/athena/$1/.local/share
ln -s ../.. /var/lib/athena/$1/.local/share/Project\ Athena\ -\ dev
ln -s ../.. /var/lib/athena/$1/.local/share/Project\ Athena
mkdir -p /var/lib/athena/$1/domain-server
echo "{\"metaverse\": {\"local_port\": $(($2 + 2))},\"version\": 2.4}" > /var/lib/athena/$1/domain-server/config.json
chown -R athena.athena /var/lib/athena/$1
mkdir -p /var/lib/vircadia/$1/.local/share
ln -s ../.. /var/lib/vircadia/$1/.local/share/Vircadia\ -\ dev
ln -s ../.. /var/lib/vircadia/$1/.local/share/Vircadia
mkdir -p /var/lib/vircadia/$1/domain-server
echo "{\"metaverse\": {\"local_port\": $(($2 + 2))},\"version\": 2.4}" > /var/lib/vircadia/$1/domain-server/config.json
chown -R vircadia.vircadia /var/lib/vircadia/$1
echo HIFI_DOMAIN_SERVER_HTTP_PORT=$2 > /etc/opt/athena/$1.conf
echo HIFI_DOMAIN_SERVER_HTTPS_PORT=$(($2 + 1)) >> /etc/opt/athena/$1.conf
echo HIFI_DOMAIN_SERVER_PORT=$(($2 + 2)) >> /etc/opt/athena/$1.conf
echo HIFI_DOMAIN_SERVER_DTLS_PORT=$(($2 + 3)) >> /etc/opt/athena/$1.conf
echo HIFI_DOMAIN_SERVER_HTTP_PORT=$2 > /etc/opt/vircadia/$1.conf
echo HIFI_DOMAIN_SERVER_HTTPS_PORT=$(($2 + 1)) >> /etc/opt/vircadia/$1.conf
echo HIFI_DOMAIN_SERVER_PORT=$(($2 + 2)) >> /etc/opt/vircadia/$1.conf
echo HIFI_DOMAIN_SERVER_DTLS_PORT=$(($2 + 3)) >> /etc/opt/vircadia/$1.conf
echo "A new athena server has been created with the name of '$1'"
echo "A new vircadia server has been created with the name of '$1'"
echo
echo "To launch it:"
echo " sudo systemctl start athena-server@$1.target"
echo " sudo systemctl start vircadia-server@$1.target"
echo "To have it launch at system start:"
echo " sudo systemctl enable athena-server@$1.target"
echo " sudo systemctl enable vircadia-server@$1.target"
echo "The server configuration console is available at:"
echo " http://localhost:$2"

View file

@ -1,15 +1,15 @@
Source: athena-server
Source: vircadia-server
Section: comm
Priority: optional
Maintainer: Heather Anderson <heath@odysseus.anderson.name>
Build-Depends: debhelper (>= 10)
Standards-Version: 4.1.2
Homepage: https://www.projectathena.dev
Homepage: https://vircadia.com
Vcs-Git: https://github.com/kasenvr/project-athena.git
Vcs-Browser: https://github.com/kasenvr/project-athena
Package: athena-server
Package: vircadia-server
Architecture: any
Depends: adduser, {DEPENDS}
Description: Project Athena allows creation and sharing of VR experiences.
The Project Athena metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment.
Description: Vircadia allows creation and sharing of VR experiences.
The Vircadia metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment.

View file

@ -1,5 +1,5 @@
#!/bin/sh
# postinst script for athena-server
# postinst script for vircadia-server
#
# see: dh_installdeb(1)
@ -17,23 +17,55 @@ set -e
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
ldconfig -n /opt/athena/lib
adduser --system --quiet --gecos "Project Athena" --home /var/lib/athena --group --no-create-home athena
mkdir -p /var/lib/athena
chown athena:athena /var/lib/athena
chmod 775 /var/lib/athena
if [ ! -d "/var/lib/athena/default" ]; then
/opt/athena/new-server default 40100
systemctl enable athena-server@default.target
systemctl start athena-server@default.target
ldconfig -n /opt/vircadia/lib
adduser --system --quiet --gecos "Vircadia" --home /var/lib/vircadia --group --no-create-home vircadia
mkdir -p /var/lib/vircadia
chown vircadia:vircadia /var/lib/vircadia
chmod 775 /var/lib/vircadia
if [ ! -d "/var/lib/vircadia/default" ]; then
if [ -d "/var/lib/athena" ]; then
ATHENA_ACTIVE=`systemctl list-units \
| grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \
| paste -s -d'|' \
| head -c -1`
ATHENA_ENABLED=`systemctl list-units --state=loaded \
| grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \
| xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \
| paste -s -d'|' \
| head -c -1`
# shutdown athena servers
echo -n $ATHENA_ACTIVE | xargs -d'|' systemctl stop
# copy the server files over
cp /etc/opt/athena/* /etc/opt/vircadia
cp -R /var/lib/athena/* /var/lib/vircadia
chown -R vircadia:vircadia /var/lib/vircadia/*
find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. "Vircadia - dev"' ';'
find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. Vircadia' ';'
VIRCADIA_ACTIVE=`echo -n $ATHENA_ACTIVE | sed 's/athena/vircadia/g'`
VIRCADIA_ENABLED=`echo -n $ATHENA_ENABLED | sed 's/athena/vircadia/g'`
echo -n $ATHENA_ENABLED | xargs -d'|' systemctl disable
echo -n $VIRCADIA_ENABLED | xargs -d'|' systemctl enable
echo -n $VIRCADIA_ACTIVE | xargs -d'|' systemctl start
else
/opt/vircadia/new-server default 40100
systemctl enable vircadia-server@default.target
systemctl start vircadia-server@default.target
fi
else
systemctl list-units \
| grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \
| xargs systemctl restart
fi
;;
abort-remove|abort-deconfigure)
ldconfig -n /opt/athena/lib
ldconfig -n /opt/vircadia/lib
;;
abort-upgrade)

41
pkg-scripts/server-postrm Executable file
View file

@ -0,0 +1,41 @@
#!/bin/sh
# postrm script for vircadia-server
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version> <new-version>
# * <postrm> `disappear' <overwriter-package> <overwriter-version>
# * <new-postrm> `abort-install;
# * <new-postrm> `abort-install' <old-version> <new-version>
# * <new-postrm> `abort-upgrade' <old-version> <new-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
purge)
rm -r /etc/opt/vircadia
rm -r /var/lib/vircadia
;;
remove|upgrade|failed-upgrade|disappear|abort-install|abort-upgrade)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View file

@ -1,5 +1,5 @@
#!/bin/sh
# prerm script for athena-server
# prerm script for vircadia-server
#
# see: dh_installdeb(1)
@ -19,7 +19,11 @@ set -e
case "$1" in
remove)
find -P /opt/athena/lib -type l -delete
systemctl list-units \
| grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \
| xargs systemctl stop
find -P /opt/vircadia/lib -type l -delete
;;
upgrade|deconfigure)

View file

@ -18,26 +18,26 @@
dh $@ --with=systemd
override_dh_systemd_enable:
dh_systemd_enable --no-enable --name athena-assignment-client athena-assignment-client.service
dh_systemd_enable --no-enable --name athena-assignment-client@ athena-assignment-client@.service
dh_systemd_enable --no-enable --name athena-domain-server athena-domain-server.service
dh_systemd_enable --no-enable --name athena-domain-server@ athena-domain-server@.service
#dh_systemd_enable --no-enable --name athena-ice-server athena-ice-server.service
#dh_systemd_enable --no-enable --name athena-ice-server@ athena-ice-server@.service
dh_systemd_enable --no-enable --name athena-server athena-server.target
dh_systemd_enable --no-enable --name athena-server@ athena-server@.target
#dh_systemd_enable --name athena-server@default athena-server@default.target
dh_systemd_enable --no-enable --name vircadia-assignment-client vircadia-assignment-client.service
dh_systemd_enable --no-enable --name vircadia-assignment-client@ vircadia-assignment-client@.service
dh_systemd_enable --no-enable --name vircadia-domain-server vircadia-domain-server.service
dh_systemd_enable --no-enable --name vircadia-domain-server@ vircadia-domain-server@.service
#dh_systemd_enable --no-enable --name vircadia-ice-server vircadia-ice-server.service
#dh_systemd_enable --no-enable --name vircadia-ice-server@ vircadia-ice-server@.service
dh_systemd_enable --no-enable --name vircadia-server vircadia-server.target
dh_systemd_enable --no-enable --name vircadia-server@ vircadia-server@.target
#dh_systemd_enable --name vircadia-server@default vircadia-server@default.target
override_dh_systemd_start:
dh_systemd_start --restart-after-upgrade --no-start athena-assignment-client.service
dh_systemd_start --restart-after-upgrade --no-start athena-assignment-client@.service
dh_systemd_start --restart-after-upgrade --no-start athena-domain-server.service
dh_systemd_start --restart-after-upgrade --no-start athena-domain-server@.service
#dh_systemd_start --restart-after-upgrade --no-start athena-ice-server.service
#dh_systemd_start --restart-after-upgrade --no-start athena-ice-server@.service
dh_systemd_start --restart-after-upgrade --no-start athena-server.target
dh_systemd_start --restart-after-upgrade --no-start athena-server@.target
#dh_systemd_start --restart-after-upgrade athena-server@default.target
dh_systemd_start --restart-after-upgrade --no-start vircadia-assignment-client.service
dh_systemd_start --restart-after-upgrade --no-start vircadia-assignment-client@.service
dh_systemd_start --restart-after-upgrade --no-start vircadia-domain-server.service
dh_systemd_start --restart-after-upgrade --no-start vircadia-domain-server@.service
#dh_systemd_start --restart-after-upgrade --no-start vircadia-ice-server.service
#dh_systemd_start --restart-after-upgrade --no-start vircadia-ice-server@.service
dh_systemd_start --restart-after-upgrade --no-start vircadia-server.target
dh_systemd_start --restart-after-upgrade --no-start vircadia-server@.target
#dh_systemd_start --restart-after-upgrade vircadia-server@default.target
override_dh_installinit:
dh_installinit --noscripts

View file

@ -0,0 +1,18 @@
[Unit]
Description=Assignment client service for Vircadia server
After=network.target
PartOf=vircadia-server.target
[Service]
Restart=always
WorkingDirectory=/opt/vircadia
Environment="LD_LIBRARY_PATH=/opt/vircadia/lib"
User=vircadia
Group=vircadia
#LimitCORE=infinity
#ExecStart=/opt/vircadia/assignment-client -n 6
ExecStart=/opt/vircadia/assignment-client --min 6 --max 20
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,20 @@
[Unit]
Description=Assignment client service for Vircadia server
After=network.target
PartOf=vircadia-server@%i.target
[Service]
Restart=always
WorkingDirectory=/opt/vircadia
EnvironmentFile=/etc/opt/vircadia/%i.conf
Environment="LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i"
PrivateTmp=true
User=vircadia
Group=vircadia
#LimitCORE=infinity
#ExecStart=/opt/vircadia/assignment-client -n 6
ExecStart=/opt/vircadia/assignment-client --min 6 --max 20 --server-port $HIFI_DOMAIN_SERVER_PORT
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,17 @@
[Unit]
Description=Domain Server service for Vircadia
After=network.target
PartOf=vircadia-server.target
[Service]
Restart=on-failure
WorkingDirectory=/opt/vircadia
Environment="LD_LIBRARY_PATH=/opt/vircadia/lib"
User=vircadia
Group=vircadia
#LimitCORE=infinity
ExecStart=/opt/vircadia/domain-server
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,19 @@
[Unit]
Description=Domain Server service for Vircadia
After=network.target
PartOf=vircadia-server@%i.target
[Service]
Restart=on-failure
WorkingDirectory=/opt/vircadia
EnvironmentFile=/etc/opt/vircadia/%i.conf
Environment="LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i"
PrivateTmp=true
User=vircadia
Group=vircadia
#LimitCORE=infinity
ExecStart=/opt/vircadia/domain-server
[Install]
WantedBy=multi-user.target

View file

@ -1,18 +1,18 @@
[Unit]
Description=Ice Server service for Athena
Description=Ice Server service for Vircadia
After=network.target
PartOf=athena-server.target
PartOf=vircadia-server.target
[Service]
Restart=on-failure
Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/athena/lib"
WorkingDirectory=/opt/athena
User=athena
Group=athena
Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/vircadia/lib"
WorkingDirectory=/opt/vircadia
User=vircadia
Group=vircadia
#ExecStartPre=/bin/bash -c 'if /usr/bin/pgrep -l ice-server; then /usr/bin/pkill -SIGKILL -f /usr/share/hifi/ice-server/ice-server; fi'
#LimitCORE=infinity
ExecStart=/opt/athena/ice-server
ExecStart=/opt/vircadia/ice-server
[Install]
WantedBy=multi-user.target

View file

@ -1,20 +1,20 @@
[Unit]
Description=Ice Server service for Athena
Description=Ice Server service for Vircadia
After=network.target
PartOf=athena-server@%i.target
PartOf=vircadia-server@%i.target
[Service]
Restart=on-failure
EnvironmentFile=/etc/opt/athena/%i.conf
Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/athena/lib" "HOME=/var/lib/athena/%i"
EnvironmentFile=/etc/opt/vircadia/%i.conf
Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i"
PrivateTmp=true
WorkingDirectory=/opt/athena
User=athena
Group=athena
WorkingDirectory=/opt/vircadia
User=vircadia
Group=vircadia
#ExecStartPre=/bin/bash -c 'if /usr/bin/pgrep -l ice-server; then /usr/bin/pkill -SIGKILL -f /usr/share/hifi/ice-server/ice-server; fi'
#LimitCORE=infinity
ExecStart=/opt/athena/ice-server
ExecStart=/opt/vircadia/ice-server
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,168 @@
#VIRCADIA=~/Vircadia rpmbuild --target x86_64 -bb vircadia-server.spec
%define version %{lua:print(os.getenv("VERSION"))}
%define depends %{lua:print(os.getenv("DEPENDS"))}
Name: vircadia-server
Version: %{version}
Release: 1%{?dist}
Summary: Vircadia metaverse platform, based on the High Fidelity Engine.
License: ASL 2.0
URL: https://vircadia.com
Source0: https://github.com/kasenvr/vircadia-builder/blob/master/vircadia-builder
#BuildRequires: systemd-rpm-macros
BuildRequires: chrpath
Requires: %{depends}
BuildArch: x86_64
AutoReq: no
AutoProv: no
%description
Vircadia allows creation and sharing of VR experiences.
The Vircadia metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment.
%prep
%build
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/opt/vircadia
install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/assignment-client/assignment-client
install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/domain-server/domain-server
install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/tools/oven/oven
#install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/ice-server/ice-server
strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/*
chrpath -d $RPM_BUILD_ROOT/opt/vircadia/*
install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/source/pkg-scripts/new-server
install -d $RPM_BUILD_ROOT/opt/vircadia/lib
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/build/libraries/*/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/lib/*
chrpath -d $RPM_BUILD_ROOT/opt/vircadia/lib/*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5Quick.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.*
install -d $RPM_BUILD_ROOT/usr/lib/systemd/system
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-assignment-client.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-assignment-client@.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-domain-server.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-domain-server@.service
#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-ice-server.service
#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-ice-server@.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-server.target
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $VIRCADIA/source/pkg-scripts/vircadia-server@.target
cp -a $VIRCADIA/source/domain-server/resources $RPM_BUILD_ROOT/opt/vircadia
cp -a $VIRCADIA/build/assignment-client/plugins $RPM_BUILD_ROOT/opt/vircadia
chrpath -d $RPM_BUILD_ROOT/opt/vircadia/plugins/*.so
chrpath -d $RPM_BUILD_ROOT/opt/vircadia/plugins/*/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/plugins/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/plugins/*/*.so
find $RPM_BUILD_ROOT/opt/vircadia/resources -name ".gitignore" -delete
%files
%license $VIRCADIA/source/LICENSE
/opt/vircadia
/usr/lib/systemd/system
%changelog
%post
# create users
getent passwd vircadia >/dev/null 2>&1 || useradd -r -c "Vircadia" -d /var/lib/vircadia -U -M vircadia
#getent group vircadia >/dev/null 2>&1 || groupadd -r vircadia
# create data folder
mkdir -p /etc/opt/vircadia
mkdir -p /var/lib/vircadia && chown vircadia:vircadia /var/lib/vircadia && chmod 775 /var/lib/vircadia
ldconfig -n /opt/vircadia/lib
%systemd_post vircadia-assignment-client.service
%systemd_post vircadia-assignment-client@.service
%systemd_post vircadia-domain-server.service
%systemd_post vircadia-domain-server@.service
#%systemd_post vircadia-ice-server.service
#%systemd_post vircadia-ice-server@.service
%systemd_post vircadia-server.target
%systemd_post vircadia-server@.target
if [ ! -d "/var/lib/vircadia/default" ]; then
if [ -d "/var/lib/athena" ]; then
ATHENA_ACTIVE=`systemctl list-units \
| grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \
| paste -s -d'|' \
| head -c -1`
ATHENA_ENABLED=`systemctl list-units --state=loaded \
| grep -P -o "(athena-assignment-client|athena-domain-server|athena-server)\S+" \
| xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \
| paste -s -d'|' \
| head -c -1`
# shutdown athena servers
echo -n $ATHENA_ACTIVE | xargs -d'|' systemctl stop
# copy the server files over
cp /etc/opt/athena/* /etc/opt/vircadia
cp -R /var/lib/athena/* /var/lib/vircadia
chown -R vircadia:vircadia /var/lib/vircadia/*
find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. "Vircadia - dev"' ';'
find /var/lib/vircadia -maxdepth 3 -path "*\.local/share" -execdir sh -c 'cd share; ln -s ../.. Vircadia' ';'
VIRCADIA_ACTIVE=`echo -n $ATHENA_ACTIVE | sed 's/athena/vircadia/g'`
VIRCADIA_ENABLED=`echo -n $ATHENA_ENABLED | sed 's/athena/vircadia/g'`
echo -n $ATHENA_ENABLED | xargs -d'|' systemctl disable
echo -n $VIRCADIA_ENABLED | xargs -d'|' systemctl enable
echo -n $VIRCADIA_ACTIVE | xargs -d'|' systemctl start
else
/opt/vircadia/new-server default 40100
systemctl enable vircadia-server@default.target
systemctl start vircadia-server@default.target
fi
else
systemctl list-units \
| grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \
| xargs systemctl restart
fi
%preun
if [ "$1" -eq 0 ]; then
systemctl list-units \
| grep -P -o "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)\S+" \
| xargs systemctl stop
fi
%systemd_preun vircadia-server.target
%systemd_preun vircadia-server@.target
%systemd_preun vircadia-assignment-client.service
%systemd_preun vircadia-assignment-client@.service
%systemd_preun vircadia-domain-server.service
%systemd_preun vircadia-domain-server@.service
#%systemd_preun vircadia-ice-server.service
#%systemd_preun vircadia-ice-server@.service
%postun
%systemd_postun_with_restart vircadia-server.target
%systemd_postun_with_restart vircadia-server@.target
%systemd_postun_with_restart vircadia-assignment-client.service
%systemd_postun_with_restart vircadia-assignment-client@.service
%systemd_postun_with_restart vircadia-domain-server.service
%systemd_postun_with_restart vircadia-domain-server@.service
#%systemd_postun_with_restart vircadia-ice-server.service
#%systemd_postun_with_restart vircadia-ice-server@.service

View file

@ -0,0 +1,11 @@
[Unit]
Description=Vircadia virtual domain
Wants=vircadia-assignment-client.service
Wants=vircadia-domain-server.service
#Wants=vircadia-ice-server.service
After=vircadia-assignment-client.service
After=vircadia-domain-server.service
#After=vircadia-ice-server.service
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,11 @@
[Unit]
Description=Vircadia virtual domain
Wants=vircadia-assignment-client@%i.service
Wants=vircadia-domain-server@%i.service
#Wants=vircadia-ice-server@%i.service
After=vircadia-assignment-client@%i.service
After=vircadia-domain-server@%i.service
#After=vircadia-ice-server@%i.service
[Install]
WantedBy=multi-user.target