Migration progressed far enough to get a .deb file out of this, installation has not yet been tested on any machine

This commit is contained in:
Heather Anderson 2020-06-04 07:14:27 +00:00
parent 00e8ce9bb8
commit d8d740d369
10 changed files with 203 additions and 216 deletions

View file

@ -1,5 +1,5 @@
Collection of scripts to create server distribution packages. Most of these scripts assume 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 the following directory structure exists
base folder/ 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 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; 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: Ubuntu:
DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server DEBEMAIL="your-email@somewhere.com" DEBFULLNAME="Your Full Name" ./make-deb-server
@ -30,24 +30,24 @@ Docker:
Results: Results:
The following directory structure is created for binaries: The following directory structure is created for binaries:
/opt/athena - executables /opt/vircadia - executables
/opt/athena/lib - private shared libraries required for executables /opt/vircadia/lib - private shared libraries required for executables
/opt/athena/resources - files required by domain-server administrative website /opt/vircadia/resources - files required by domain-server administrative website
/opt/athena/plugins - files required by assignment-client, mainly for audio codecs /opt/vircadia/plugins - files required by assignment-client, mainly for audio codecs
The following systemd services are installed in /usr/lib/systemd/system: The following systemd services are installed in /usr/lib/systemd/system:
athena-assignment-client.service vircadia-assignment-client.service
athena-domain-server.service vircadia-domain-server.service
athena-server.target - used to launch/shutdown the two prior services vircadia-server.target - used to launch/shutdown the two prior services
athena-assignment-client@.service vircadia-assignment-client@.service
athena-domain-server@.service vircadia-domain-server@.service
athena-server@.target - used to launch/shutdown the two prior services 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 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. 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 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 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 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. used to configure and run the domain on your server.
The server stores its files in the following locations: The server stores its files in the following locations:
/var/lib/athena/.local - "unnamed" services (the default location for Athena servers) /var/lib/vircadia/.local - "unnamed" services (the default location for Vircadia servers)
/var/lib/athena/serverName - "named" (template) domains /var/lib/vircadia/serverName - "named" (template) domains
/etc/opt/athena - environment variables when launching named domains /etc/opt/vircadia - environment variables when launching named domains

View file

@ -1,64 +0,0 @@
#!/bin/sh
# functions to assist with deb management
getAthenaEnabled()
{
return systemctl list-units --state=loaded \
| grep -P "(athena-assignment-client|athena-domain-server|athena-server)" \
| cut -d' ' -f 1 \
| xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \
| paste -s -d'|'
}
getVircadiaEnabled()
{
return systemctl list-units --state=loaded \
| grep -P "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)" \
| cut -d' ' -f 1 \
| xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \
| paste -s -d'|'
}
getAthenaActive()
{
return systemctl list-units \
| grep -P "(athena-assignment-client|athena-domain-server|athena-server)" \
| cut -d' ' -f 1 \
| paste -s -d'|'
}
getVircadiaActive()
{
return systemctl list-units \
| grep -P "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)" \
| cut -d' ' -f 1 \
| paste -s -d'|'
}
disableList()
{
echo $1 \
| xargs -d'|' \
| systemctl disable
}
enableList()
{
echo $1 \
| xargs -d'|' \
| systemctl enable
}
stopList()
{
echo $1 \
| xargs -d'|' \
| systemctl stop
}
startList()
{
echo $1 \
| xargs -d'|' \
| systemctl start
}

View file

@ -15,8 +15,8 @@ if [ -f /var/lib/vircadia/.local -a "$(id -u)" = "0" ]; then
fi fi
# realign pid # realign pid
THIS_ATHENA_PID=`ls -nd /var/lib/vircadia/.local | cut -f3 -d' '` THIS_VIRCADIA_PID=`ls -nd /var/lib/vircadia/.local | cut -f3 -d' '`
CUR_ATHENA_PID=`getent passwd vircadia | cut -f3 -d: || true` CUR_VIRCADIA_PID=`getent passwd vircadia | cut -f3 -d: || true`
if [ ! -z "$THIS_VIRCADIA_PID" -a "$THIS_VIRCADIA_PID" != "$CUR_VIRCADIA_PID" ]; then if [ ! -z "$THIS_VIRCADIA_PID" -a "$THIS_VIRCADIA_PID" != "$CUR_VIRCADIA_PID" ]; then
usermod -u ${THIS_VIRCADIA_PID} -o vircadia usermod -u ${THIS_VIRCADIA_PID} -o vircadia
fi fi

View file

@ -1,12 +1,12 @@
#!/bin/sh #!/bin/sh
if [ "$ATHENA" = "" ]; then if [ "$VIRCADIA" = "" ]; then
ATHENA=`realpath ../..` VIRCADIA=`realpath ../..`
fi 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"` 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 $ATHENA/source rev-parse HEAD | cut -c 1-7` GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7`
VERSION=0.86.0-k2-$GITDATE-$GITCOMMIT VERSION=2020.2.0-asteria-$GITDATE-$GITCOMMIT
sudo apt-get install chrpath binutils dh-make sudo apt-get install chrpath binutils dh-make
@ -15,31 +15,29 @@ rm -r temp-make-deb
mkdir -p $DEB_BUILD_ROOT mkdir -p $DEB_BUILD_ROOT
# copy the files over # copy the files over
cp $ATHENA/build/assignment-client/assignment-client $DEB_BUILD_ROOT cp $VIRCADIA/build/assignment-client/assignment-client $DEB_BUILD_ROOT
cp $ATHENA/build/domain-server/domain-server $DEB_BUILD_ROOT cp $VIRCADIA/build/domain-server/domain-server $DEB_BUILD_ROOT
cp $ATHENA/build/tools/oven/oven $DEB_BUILD_ROOT cp $VIRCADIA/build/tools/oven/oven $DEB_BUILD_ROOT
cp $ATHENA/build/libraries/*/*.so $DEB_BUILD_ROOT cp $VIRCADIA/build/libraries/*/*.so $DEB_BUILD_ROOT
#cp $ATHENA/build/ice-server/ice-server $DEB_BUILD_ROOT #cp $VIRCADIA/build/ice-server/ice-server $DEB_BUILD_ROOT
chrpath -d $DEB_BUILD_ROOT/* chrpath -d $DEB_BUILD_ROOT/*
cp $ATHENA/qt5-install/lib/libQt5Network.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Core.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Gui.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Script.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Quick.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* $DEB_BUILD_ROOT
cp $ATHENA/qt5-install/lib/libQt5Qml.so.*.*.* $DEB_BUILD_ROOT cp $VIRCADIA/qt5-install/lib/libQt5ScriptTools.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
chmod +x $DEB_BUILD_ROOT/*.so.*.*.* chmod +x $DEB_BUILD_ROOT/*.so.*.*.*
strip --strip-all $DEB_BUILD_ROOT/* strip --strip-all $DEB_BUILD_ROOT/*
cp $ATHENA/source/pkg-scripts/new-server $DEB_BUILD_ROOT cp $VIRCADIA/source/pkg-scripts/new-server $DEB_BUILD_ROOT
cp -a $ATHENA/source/domain-server/resources $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 -name ".gitignore" -delete
find $DEB_BUILD_ROOT/resources -type f -executable -exec sh -c 'chmod -x {}' \; find $DEB_BUILD_ROOT/resources -type f -executable -exec sh -c 'chmod -x {}' \;
cp $ATHENA/source/README.md $DEB_BUILD_ROOT cp $VIRCADIA/source/README.md $DEB_BUILD_ROOT
cp $ATHENA/source/README_hifi.md $DEB_BUILD_ROOT cp $VIRCADIA/source/README_hifi.md $DEB_BUILD_ROOT
cp -a $ATHENA/build/assignment-client/plugins $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
strip --strip-all $DEB_BUILD_ROOT/plugins/*/*.so strip --strip-all $DEB_BUILD_ROOT/plugins/*/*.so
@ -47,20 +45,20 @@ strip --strip-all $DEB_BUILD_ROOT/plugins/*/*.so
cd $DEB_BUILD_ROOT cd $DEB_BUILD_ROOT
dh_make -p vircadia-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/vircadia-assignment-client.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client.service debian
cp $ATHENA/source/pkg-scripts/vircadia-assignment-client@.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client@.service debian
cp $ATHENA/source/pkg-scripts/vircadia-domain-server.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server.service debian
cp $ATHENA/source/pkg-scripts/vircadia-domain-server@.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server@.service debian
#cp $ATHENA/source/pkg-scripts/vircadia-ice-server.service debian #cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server.service debian
#cp $ATHENA/source/pkg-scripts/vircadia-ice-server@.service debian #cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server@.service debian
cp $ATHENA/source/pkg-scripts/vircadia-server.target debian cp $VIRCADIA/source/pkg-scripts/vircadia-server.target debian
cp $ATHENA/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 $VIRCADIA/source/pkg-scripts/server-control debian/control
cp $ATHENA/source/pkg-scripts/server-prerm debian/prerm cp $VIRCADIA/source/pkg-scripts/server-prerm debian/prerm
cp $ATHENA/source/pkg-scripts/server-postinst debian/postinst cp $VIRCADIA/source/pkg-scripts/server-postinst debian/postinst
cp $ATHENA/source/pkg-scripts/server-postrm debian/postrm cp $VIRCADIA/source/pkg-scripts/server-postrm debian/postrm
cp $ATHENA/source/LICENSE debian/copyright cp $VIRCADIA/source/LICENSE debian/copyright
echo /etc/opt/vircadia > debian/dirs echo /etc/opt/vircadia > debian/dirs
echo /var/lib/vircadia >> debian/dirs echo /var/lib/vircadia >> debian/dirs
@ -88,12 +86,14 @@ done
find resources -type f -exec sh -c 'echo {} opt/vircadia/$(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' \; find plugins -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \;
SOFILES=`ls *.so *.so.*.*.* | sed 's/\./\\\./g' | paste -d'|' -s` SOFILES=`ls *.so *.so.*.*.* | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | 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` 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`
cp $ATHENA/source/pkg-scripts/server-rules debian/rules cp $VIRCADIA/source/pkg-scripts/server-rules debian/rules
sed "s/{DEPENDS}/$DEPENDS/" $ATHENA/source/pkg-scripts/server-control > debian/control sed "s/{DEPENDS}/$DEPENDS/" $VIRCADIA/source/pkg-scripts/server-control > debian/control
dpkg-buildpackage -us -uc dpkg-buildpackage -us -uc

View file

@ -1,53 +1,51 @@
#!/bin/sh #!/bin/sh
if [ "$ATHENA" = "" ]; then if [ "$VIRCADIA" = "" ]; then
ATHENA=`realpath ../..` VIRCADIA=`realpath ../..`
fi fi
GITSRC=`git -C $ATHENA/source config --get remote.origin.url | cut -d':' -f 2` GITSRC=`git -C $VIRCADIA/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"` 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 $ATHENA/source rev-parse HEAD | cut -c 1-7` GITCOMMIT=`git -C $VIRCADIA/source rev-parse HEAD | cut -c 1-7`
sudo apt-get install chrpath binutils sudo apt-get install chrpath binutils
DOCK_BUILD_ROOT=temp-make-dock DOCK_BUILD_ROOT=temp-make-dock
rm -r temp-make-dock 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 $VIRCADIA/source/pkg-scripts/Dockerfile.templ $DOCK_BUILD_ROOT/Dockerfile
cp $ATHENA/source/pkg-scripts/docker-entrypoint.sh $DOCK_BUILD_ROOT/entrypoint.sh cp $VIRCADIA/source/pkg-scripts/docker-entrypoint.sh $DOCK_BUILD_ROOT/entrypoint.sh
cp $ATHENA/source/pkg-scripts/docker-vircadia-supervisor.conf $DOCK_BUILD_ROOT/vircadia.conf cp $VIRCADIA/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
cp $ATHENA/build/assignment-client/assignment-client $DOCK_BUILD_ROOT/opt cp $VIRCADIA/build/assignment-client/assignment-client $DOCK_BUILD_ROOT/opt
cp $ATHENA/build/domain-server/domain-server $DOCK_BUILD_ROOT/opt cp $VIRCADIA/build/domain-server/domain-server $DOCK_BUILD_ROOT/opt
cp $ATHENA/build/tools/oven/oven $DOCK_BUILD_ROOT/opt cp $VIRCADIA/build/tools/oven/oven $DOCK_BUILD_ROOT/opt
#cp $ATHENA/build/ice-server/ice-server $DOCK_BUILD_ROOT/opt #cp $VIRCADIA/build/ice-server/ice-server $DOCK_BUILD_ROOT/opt
strip --strip-all $DOCK_BUILD_ROOT/opt/* strip --strip-all $DOCK_BUILD_ROOT/opt/*
chrpath -d $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 strip --strip-all $DOCK_BUILD_ROOT/opt/plugins/*.so
chrpath -d $DOCK_BUILD_ROOT/opt/plugins/*.so chrpath -d $DOCK_BUILD_ROOT/opt/plugins/*.so
strip --strip-all $DOCK_BUILD_ROOT/opt/plugins/*/*.so strip --strip-all $DOCK_BUILD_ROOT/opt/plugins/*/*.so
chrpath -d $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 -name ".gitignore" -delete
find $DOCK_BUILD_ROOT/opt/resources -type f -executable -exec sh -c 'chmod -x {}' \; find $DOCK_BUILD_ROOT/opt/resources -type f -executable -exec sh -c 'chmod -x {}' \;
mkdir -p $DOCK_BUILD_ROOT/lib mkdir -p $DOCK_BUILD_ROOT/lib
cp $ATHENA/build/libraries/*/*.so $DOCK_BUILD_ROOT/lib cp $VIRCADIA/build/libraries/*/*.so $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Network.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5Network.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Core.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5Core.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Widgets.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5Widgets.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Gui.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5Gui.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Script.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5Script.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Quick.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5WebSockets.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5Qml.so.*.*.* $DOCK_BUILD_ROOT/lib
cp $ATHENA/qt5-install/lib/libQt5Qml.so.*.*.* $DOCK_BUILD_ROOT/lib cp $VIRCADIA/qt5-install/lib/libQt5ScriptTools.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
chmod +x $DOCK_BUILD_ROOT/lib/* chmod +x $DOCK_BUILD_ROOT/lib/*
strip --strip-all $DOCK_BUILD_ROOT/lib/* strip --strip-all $DOCK_BUILD_ROOT/lib/*
chrpath -d $DOCK_BUILD_ROOT/lib/* chrpath -d $DOCK_BUILD_ROOT/lib/*

View file

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

View file

@ -4,7 +4,7 @@ Priority: optional
Maintainer: Heather Anderson <heath@odysseus.anderson.name> Maintainer: Heather Anderson <heath@odysseus.anderson.name>
Build-Depends: debhelper (>= 10) Build-Depends: debhelper (>= 10)
Standards-Version: 4.1.2 Standards-Version: 4.1.2
Homepage: https://www.projectathena.dev Homepage: https://vircadia.com
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

View file

@ -2,7 +2,6 @@
# postinst script for vircadia-server # postinst script for vircadia-server
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
. ./deb-functions
set -e set -e
@ -18,6 +17,67 @@ set -e
# for details, see https://www.debian.org/doc/debian-policy/ or # for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package # the debian-policy package
getAthenaEnabled()
{
return systemctl list-units --state=loaded \
| grep -P "(athena-assignment-client|athena-domain-server|athena-server)" \
| cut -d' ' -f 1 \
| xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \
| paste -s -d'|'
}
getVircadiaEnabled()
{
return systemctl list-units --state=loaded \
| grep -P "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)" \
| cut -d' ' -f 1 \
| xargs -I {} sh -c 'if systemctl is-enabled {} >/dev/null ; then echo {} ; fi' \
| paste -s -d'|'
}
getAthenaActive()
{
return systemctl list-units \
| grep -P "(athena-assignment-client|athena-domain-server|athena-server)" \
| cut -d' ' -f 1 \
| paste -s -d'|'
}
getVircadiaActive()
{
return systemctl list-units \
| grep -P "(vircadia-assignment-client|vircadia-domain-server|vircadia-server)" \
| cut -d' ' -f 1 \
| paste -s -d'|'
}
disableList()
{
echo $1 \
| xargs -d'|' \
| systemctl disable
}
enableList()
{
echo $1 \
| xargs -d'|' \
| systemctl enable
}
stopList()
{
echo $1 \
| xargs -d'|' \
| systemctl stop
}
startList()
{
echo $1 \
| xargs -d'|' \
| systemctl start
}
case "$1" in case "$1" in
configure) configure)

View file

@ -2,7 +2,6 @@
# postrm script for vircadia-server # postrm script for vircadia-server
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
. ./deb-functions
set -e set -e

View file

@ -1,4 +1,4 @@
#ATHENA=~/Athena rpmbuild --target x86_64 -bb vircadia-server.spec #VIRCADIA=~/Vircadia rpmbuild --target x86_64 -bb vircadia-server.spec
%define version %{lua:print(os.getenv("VERSION"))} %define version %{lua:print(os.getenv("VERSION"))}
%define depends %{lua:print(os.getenv("DEPENDS"))} %define depends %{lua:print(os.getenv("DEPENDS"))}
@ -8,8 +8,8 @@ Release: 1%{?dist}
Summary: Vircadia metaverse platform, based on the High Fidelity Engine. Summary: Vircadia metaverse platform, based on the High Fidelity Engine.
License: ASL 2.0 License: ASL 2.0
URL: https://projectathena.io URL: https://vircadia.com
Source0: https://github.com/daleglass/athena-builder/blob/master/athena_builder Source0: https://github.com/kasenvr/vircadia-builder/blob/master/vircadia-builder
#BuildRequires: systemd-rpm-macros #BuildRequires: systemd-rpm-macros
BuildRequires: chrpath BuildRequires: chrpath
@ -32,38 +32,36 @@ Vircadia allows creation and sharing of VR experiences.
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/opt/vircadia 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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/build/tools/oven/oven
#install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $ATHENA/build/ice-server/ice-server #install -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/build/ice-server/ice-server
strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/* strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/*
chrpath -d $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 -m 0755 -t $RPM_BUILD_ROOT/opt/vircadia $VIRCADIA/source/pkg-scripts/new-server
install -d $RPM_BUILD_ROOT/opt/vircadia/lib install -d $RPM_BUILD_ROOT/opt/vircadia/lib
install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $ATHENA/build/libraries/*/*.so install -m 0644 -t $RPM_BUILD_ROOT/opt/vircadia/lib $VIRCADIA/build/libraries/*/*.so
strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/lib/* strip --strip-all $RPM_BUILD_ROOT/opt/vircadia/lib/*
chrpath -d $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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/qt5-install/lib/libQt5WebSockets.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 $VIRCADIA/qt5-install/lib/libQt5Qml.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 $VIRCADIA/qt5-install/lib/libQt5ScriptTools.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 -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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/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 $VIRCADIA/source/pkg-scripts/vircadia-server.target
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 $VIRCADIA/source/pkg-scripts/vircadia-server@.target
cp -a $ATHENA/source/domain-server/resources $RPM_BUILD_ROOT/opt/vircadia cp -a $VIRCADIA/source/domain-server/resources $RPM_BUILD_ROOT/opt/vircadia
cp -a $ATHENA/build/assignment-client/plugins $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
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
@ -72,7 +70,7 @@ find $RPM_BUILD_ROOT/opt/vircadia/resources -name ".gitignore" -delete
%files %files
%license $ATHENA/source/LICENSE %license $VIRCADIA/source/LICENSE
/opt/vircadia /opt/vircadia
/usr/lib/systemd/system /usr/lib/systemd/system