Initial pass renaming athena -> vircadia

This commit is contained in:
Heather Anderson 2020-03-21 21:50:05 +00:00
parent 72d931688c
commit ffc1b7ee53
27 changed files with 361 additions and 370 deletions

View file

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

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

View file

@ -1,74 +1,74 @@
[supervisord] [supervisord]
user=athena user=vircadia
nodaemon=true 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=/dev/stdout
logfile_maxbytes=0 logfile_maxbytes=0
pidfile=/var/run/supervisord.pid pidfile=/var/run/supervisord.pid
[program:domain-server] [program:domain-server]
command=/opt/athena/domain-server command=/opt/vircadia/domain-server
autorestart=unexpected autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
[program:audio-mixer] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
[program:avatar-mixer] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
[program:entities-server] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
[program:asset-server] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
[program:entity-script-server] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
[program:messages-mixer] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
[program:scripted-agent] [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 autorestart=unexpected
directory=/opt/athena directory=/opt/vircadia
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0 stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr

View file

@ -10,7 +10,7 @@ VERSION=0.86.0-k2-$GITDATE-$GITCOMMIT
sudo apt-get install chrpath binutils dh-make 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 rm -r temp-make-deb
mkdir -p $DEB_BUILD_ROOT mkdir -p $DEB_BUILD_ROOT
@ -45,56 +45,47 @@ strip --strip-all $DEB_BUILD_ROOT/plugins/*/*.so
#begin the debian package construction #begin the debian package construction
cd $DEB_BUILD_ROOT 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/vircadia-assignment-client.service debian
cp $ATHENA/source/pkg-scripts/athena-assignment-client@.service debian cp $ATHENA/source/pkg-scripts/vircadia-assignment-client@.service debian
cp $ATHENA/source/pkg-scripts/athena-domain-server.service debian cp $ATHENA/source/pkg-scripts/vircadia-domain-server.service debian
cp $ATHENA/source/pkg-scripts/athena-domain-server@.service debian cp $ATHENA/source/pkg-scripts/vircadia-domain-server@.service debian
#cp $ATHENA/source/pkg-scripts/athena-ice-server.service debian #cp $ATHENA/source/pkg-scripts/vircadia-ice-server.service debian
#cp $ATHENA/source/pkg-scripts/athena-ice-server@.service debian #cp $ATHENA/source/pkg-scripts/vircadia-ice-server@.service debian
cp $ATHENA/source/pkg-scripts/athena-server.target debian cp $ATHENA/source/pkg-scripts/vircadia-server.target debian
cp $ATHENA/source/pkg-scripts/athena-server@.target debian cp $ATHENA/source/pkg-scripts/vircadia-server@.target debian
cp $ATHENA/source/pkg-scripts/server-control debian/control cp $ATHENA/source/pkg-scripts/server-control debian/control
cp $ATHENA/source/pkg-scripts/server-prerm debian/prerm cp $ATHENA/source/pkg-scripts/server-prerm debian/prerm
cp $ATHENA/source/pkg-scripts/server-postinst debian/postinst cp $ATHENA/source/pkg-scripts/server-postinst debian/postinst
cp $ATHENA/source/LICENSE debian/copyright cp $ATHENA/source/LICENSE debian/copyright
echo /etc/opt/athena > debian/dirs echo /etc/opt/vircadia > debian/dirs
echo /var/lib/athena >> debian/dirs echo /var/lib/vircadia >> debian/dirs
echo README.md > debian/docs echo README.md > debian/docs
echo README_hifi.md >> debian/docs echo README_hifi.md >> debian/docs
echo assignment-client opt/athena > debian/install echo assignment-client opt/vircadia > debian/install
echo domain-server opt/athena >> debian/install echo domain-server opt/vircadia >> debian/install
echo oven opt/athena >> debian/install echo oven opt/vircadia >> debian/install
#echo ice-server opt/athena >> debian/install #echo ice-server opt/vircadia >> debian/install
echo new-server opt/athena >> debian/install echo new-server opt/vircadia >> debian/install
for so in *.so.*.*.*; do for so in *.so.*.*.*; do
echo $so opt/athena/lib >> debian/install echo $so opt/vircadia/lib >> debian/install
done done
for so in *.so; do for so in *.so; do
echo $so opt/athena/lib >> debian/install echo $so opt/vircadia/lib >> debian/install
done done
#for service in *.service; do #for service in *.service; do
# echo $service opt/athena/systemd >> debian/install # echo $service opt/vircadia/systemd >> debian/install
#done #done
#for target in *.target; do #for target in *.target; do
# echo $target opt/athena/systemd >> debian/install # echo $target opt/vircadia/systemd >> debian/install
#done #done
find resources -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/athena/$(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.*.*.* | sed 's/\./\\\./g' | paste -d'|' -s` SOFILES=`ls *.so *.so.*.*.* | sed 's/\./\\\./g' | paste -d'|' -s`

View file

@ -15,7 +15,7 @@ rm -r temp-make-dock
mkdir -p $DOCK_BUILD_ROOT mkdir -p $DOCK_BUILD_ROOT
cp $ATHENA/source/pkg-scripts/Dockerfile.templ $DOCK_BUILD_ROOT/Dockerfile 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-entrypoint.sh $DOCK_BUILD_ROOT/entrypoint.sh
cp $ATHENA/source/pkg-scripts/docker-athena-supervisor.conf $DOCK_BUILD_ROOT/athena.conf cp $ATHENA/source/pkg-scripts/docker-vircadia-supervisor.conf $DOCK_BUILD_ROOT/vircadia.conf
# copy the files over # copy the files over
mkdir -p $DOCK_BUILD_ROOT/opt mkdir -p $DOCK_BUILD_ROOT/opt
@ -57,4 +57,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` 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 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

@ -52,5 +52,5 @@ DEPENDS=mesa-libGL,`ls \
sudo yum install chrpath sudo yum install chrpath
export VERSION DEPENDS ATHENA export VERSION DEPENDS ATHENA
rpmbuild --target x86_64 -bb ./athena-server.spec rpmbuild --target x86_64 -bb ./vircadia-server.spec
mv ~/rpmbuild/RPMS/x86_64/*.rpm . mv ~/rpmbuild/RPMS/x86_64/*.rpm .

View file

@ -2,13 +2,13 @@
if [ -z "$1" ] || [ -z "$2" ]; then if [ -z "$1" ] || [ -z "$2" ]; then
echo "new-server {name} {base-port}" echo "new-server {name} {base-port}"
echo 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 " {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 " {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 " Four contiguous port numbers are allocated, these must not overlap with other running services on this machine"
echo echo
echo "Launching a server created by this script is done with:" 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 echo
exit 1 exit 1
fi fi
@ -20,30 +20,32 @@ if [ "$(id -u)" -ne 0 ]; then
exit 1 exit 1
fi fi
if [ -d "/var/lib/athena/$1" ]; then if [ -d "/var/lib/vircadia/$1" ]; then
echo "Path /var/lib/athena/$1 already exists" echo "Path /var/lib/vircadia/$1 already exists"
echo echo
echo "Please remove this path first if you wish to recreate this server" echo "Please remove this path first if you wish to recreate this server"
exit 2 exit 2
fi fi
mkdir -p /var/lib/athena/$1/.local/share mkdir -p /var/lib/vircadia/$1/.local/share
ln -s ../.. /var/lib/athena/$1/.local/share/Project\ Athena\ -\ dev ln -s ../.. /var/lib/vircadia/$1/.local/share/Project\ Athena\ -\ dev
ln -s ../.. /var/lib/athena/$1/.local/share/Project\ Athena ln -s ../.. /var/lib/vircadia/$1/.local/share/Project\ Athena
mkdir -p /var/lib/athena/$1/domain-server ln -s ../.. /var/lib/vircadia/$1/.local/share/Vircadia\ -\ dev
echo "{\"metaverse\": {\"local_port\": $(($2 + 2))},\"version\": 2.4}" > /var/lib/athena/$1/domain-server/config.json ln -s ../.. /var/lib/vircadia/$1/.local/share/Vircadia
chown -R athena.athena /var/lib/athena/$1 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_HTTP_PORT=$2 > /etc/opt/vircadia/$1.conf
echo HIFI_DOMAIN_SERVER_HTTPS_PORT=$(($2 + 1)) >> /etc/opt/athena/$1.conf echo HIFI_DOMAIN_SERVER_HTTPS_PORT=$(($2 + 1)) >> /etc/opt/vircadia/$1.conf
echo HIFI_DOMAIN_SERVER_PORT=$(($2 + 2)) >> /etc/opt/athena/$1.conf echo HIFI_DOMAIN_SERVER_PORT=$(($2 + 2)) >> /etc/opt/vircadia/$1.conf
echo HIFI_DOMAIN_SERVER_DTLS_PORT=$(($2 + 3)) >> /etc/opt/athena/$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
echo "To launch it:" 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 "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 "The server configuration console is available at:"
echo " http://localhost:$2" echo " http://localhost:$2"

View file

@ -1,4 +1,4 @@
Source: athena-server Source: vircadia-server
Section: comm Section: comm
Priority: optional Priority: optional
Maintainer: Heather Anderson <heath@odysseus.anderson.name> Maintainer: Heather Anderson <heath@odysseus.anderson.name>
@ -8,8 +8,8 @@ Homepage: https://www.projectathena.dev
Vcs-Git: https://github.com/kasenvr/project-athena.git Vcs-Git: https://github.com/kasenvr/project-athena.git
Vcs-Browser: https://github.com/kasenvr/project-athena Vcs-Browser: https://github.com/kasenvr/project-athena
Package: athena-server Package: vircadia-server
Architecture: any Architecture: any
Depends: adduser, {DEPENDS} Depends: adduser, {DEPENDS}
Description: Project Athena allows creation and sharing of VR experiences. Description: Vircadia 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. 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 #!/bin/sh
# postinst script for athena-server # postinst script for vircadia-server
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
@ -20,20 +20,20 @@ set -e
case "$1" in case "$1" in
configure) configure)
ldconfig -n /opt/athena/lib ldconfig -n /opt/vircadia/lib
adduser --system --quiet --gecos "Project Athena" --home /var/lib/athena --group --no-create-home athena adduser --system --quiet --gecos "Vircadia" --home /var/lib/vircadia --group --no-create-home vircadia
mkdir -p /var/lib/athena mkdir -p /var/lib/vircadia
chown athena:athena /var/lib/athena chown vircadia:vircadia /var/lib/vircadia
chmod 775 /var/lib/athena chmod 775 /var/lib/vircadia
if [ ! -d "/var/lib/athena/default" ]; then if [ ! -d "/var/lib/vircadia/default" ]; then
/opt/athena/new-server default 40100 /opt/vircadia/new-server default 40100
systemctl enable athena-server@default.target systemctl enable vircadia-server@default.target
systemctl start athena-server@default.target systemctl start vircadia-server@default.target
fi fi
;; ;;
abort-remove|abort-deconfigure) abort-remove|abort-deconfigure)
ldconfig -n /opt/athena/lib ldconfig -n /opt/vircadia/lib
;; ;;
abort-upgrade) abort-upgrade)

View file

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# prerm script for athena-server # prerm script for vircadia-server
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
@ -19,7 +19,7 @@ set -e
case "$1" in case "$1" in
remove) remove)
find -P /opt/athena/lib -type l -delete find -P /opt/vircadia/lib -type l -delete
;; ;;
upgrade|deconfigure) upgrade|deconfigure)

View file

@ -18,26 +18,26 @@
dh $@ --with=systemd dh $@ --with=systemd
override_dh_systemd_enable: override_dh_systemd_enable:
dh_systemd_enable --no-enable --name athena-assignment-client athena-assignment-client.service dh_systemd_enable --no-enable --name vircadia-assignment-client vircadia-assignment-client.service
dh_systemd_enable --no-enable --name athena-assignment-client@ athena-assignment-client@.service dh_systemd_enable --no-enable --name vircadia-assignment-client@ vircadia-assignment-client@.service
dh_systemd_enable --no-enable --name athena-domain-server athena-domain-server.service dh_systemd_enable --no-enable --name vircadia-domain-server vircadia-domain-server.service
dh_systemd_enable --no-enable --name athena-domain-server@ athena-domain-server@.service dh_systemd_enable --no-enable --name vircadia-domain-server@ vircadia-domain-server@.service
#dh_systemd_enable --no-enable --name athena-ice-server athena-ice-server.service #dh_systemd_enable --no-enable --name vircadia-ice-server vircadia-ice-server.service
#dh_systemd_enable --no-enable --name athena-ice-server@ athena-ice-server@.service #dh_systemd_enable --no-enable --name vircadia-ice-server@ vircadia-ice-server@.service
dh_systemd_enable --no-enable --name athena-server athena-server.target dh_systemd_enable --no-enable --name vircadia-server vircadia-server.target
dh_systemd_enable --no-enable --name athena-server@ athena-server@.target dh_systemd_enable --no-enable --name vircadia-server@ vircadia-server@.target
#dh_systemd_enable --name athena-server@default athena-server@default.target #dh_systemd_enable --name vircadia-server@default vircadia-server@default.target
override_dh_systemd_start: override_dh_systemd_start:
dh_systemd_start --restart-after-upgrade --no-start athena-assignment-client.service dh_systemd_start --restart-after-upgrade --no-start vircadia-assignment-client.service
dh_systemd_start --restart-after-upgrade --no-start athena-assignment-client@.service dh_systemd_start --restart-after-upgrade --no-start vircadia-assignment-client@.service
dh_systemd_start --restart-after-upgrade --no-start athena-domain-server.service dh_systemd_start --restart-after-upgrade --no-start vircadia-domain-server.service
dh_systemd_start --restart-after-upgrade --no-start athena-domain-server@.service dh_systemd_start --restart-after-upgrade --no-start vircadia-domain-server@.service
#dh_systemd_start --restart-after-upgrade --no-start athena-ice-server.service #dh_systemd_start --restart-after-upgrade --no-start vircadia-ice-server.service
#dh_systemd_start --restart-after-upgrade --no-start athena-ice-server@.service #dh_systemd_start --restart-after-upgrade --no-start vircadia-ice-server@.service
dh_systemd_start --restart-after-upgrade --no-start athena-server.target dh_systemd_start --restart-after-upgrade --no-start vircadia-server.target
dh_systemd_start --restart-after-upgrade --no-start athena-server@.target dh_systemd_start --restart-after-upgrade --no-start vircadia-server@.target
#dh_systemd_start --restart-after-upgrade athena-server@default.target #dh_systemd_start --restart-after-upgrade vircadia-server@default.target
override_dh_installinit: override_dh_installinit:
dh_installinit --noscripts 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] [Unit]
Description=Ice Server service for Athena Description=Ice Server service for Vircadia
After=network.target After=network.target
PartOf=athena-server.target PartOf=vircadia-server.target
[Service] [Service]
Restart=on-failure Restart=on-failure
Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/athena/lib" Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/vircadia/lib"
WorkingDirectory=/opt/athena WorkingDirectory=/opt/vircadia
User=athena User=vircadia
Group=athena 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' #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 #LimitCORE=infinity
ExecStart=/opt/athena/ice-server ExecStart=/opt/vircadia/ice-server
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View file

@ -1,20 +1,20 @@
[Unit] [Unit]
Description=Ice Server service for Athena Description=Ice Server service for Vircadia
After=network.target After=network.target
PartOf=athena-server@%i.target PartOf=vircadia-server@%i.target
[Service] [Service]
Restart=on-failure Restart=on-failure
EnvironmentFile=/etc/opt/athena/%i.conf EnvironmentFile=/etc/opt/vircadia/%i.conf
Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/athena/lib" "HOME=/var/lib/athena/%i" Environment="HIFI_ENVIRONMENT=production" "LD_LIBRARY_PATH=/opt/vircadia/lib" "HOME=/var/lib/vircadia/%i"
PrivateTmp=true PrivateTmp=true
WorkingDirectory=/opt/athena WorkingDirectory=/opt/vircadia
User=athena User=vircadia
Group=athena 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' #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 #LimitCORE=infinity
ExecStart=/opt/athena/ice-server ExecStart=/opt/vircadia/ice-server
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View file

@ -0,0 +1,128 @@
#ATHENA=~/Athena 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://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
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 $ATHENA/build/assignment-client/assignment-client
install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $ATHENA/build/domain-server/domain-server
install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $ATHENA/build/tools/oven/oven
#install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $ATHENA/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 $ATHENA/source/pkg-scripts/new-server
install -d $RPM_BUILD_ROOT/opt/vircadia/lib
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/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 $ATHENA/qt5-install/lib/libQt5Network.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5Core.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5Gui.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5Script.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5Quick.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5Qml.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.*
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/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/vircadia-assignment-client.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-assignment-client@.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-domain-server.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-domain-server@.service
#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-ice-server.service
#install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-ice-server@.service
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-server.target
install -m 0644 -t $RPM_BUILD_ROOT/usr/lib/systemd/system $ATHENA/source/pkg-scripts/vircadia-server@.target
cp -a $ATHENA/source/domain-server/resources $RPM_BUILD_ROOT/opt/vircadia
cp -a $ATHENA/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 $ATHENA/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
if [ ! -d "/var/lib/vircadia/default" ]; then
/opt/vircadia/new-server default 40100
systemctl enable vircadia-server@default.target
systemctl start vircadia-server@default.target
fi
%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
%preun
%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