mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-08 23:12:16 +02:00
Merge pull request #273 from odysseus654/feature/pkg-scripts-vircadia
package scripts: renaming athena -> vircadia
This commit is contained in:
commit
1615af94c0
29 changed files with 582 additions and 479 deletions
|
@ -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}"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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" .
|
||||
|
|
|
@ -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 .
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
41
pkg-scripts/server-postrm
Executable 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
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
18
pkg-scripts/vircadia-assignment-client.service
Normal file
18
pkg-scripts/vircadia-assignment-client.service
Normal 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
|
20
pkg-scripts/vircadia-assignment-client@.service
Normal file
20
pkg-scripts/vircadia-assignment-client@.service
Normal 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
|
17
pkg-scripts/vircadia-domain-server.service
Normal file
17
pkg-scripts/vircadia-domain-server.service
Normal 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
|
19
pkg-scripts/vircadia-domain-server@.service
Normal file
19
pkg-scripts/vircadia-domain-server@.service
Normal 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
|
|
@ -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
|
|
@ -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
|
168
pkg-scripts/vircadia-server.spec
Normal file
168
pkg-scripts/vircadia-server.spec
Normal 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
|
11
pkg-scripts/vircadia-server.target
Normal file
11
pkg-scripts/vircadia-server.target
Normal 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
|
11
pkg-scripts/vircadia-server@.target
Normal file
11
pkg-scripts/vircadia-server@.target
Normal 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
|
Loading…
Reference in a new issue