Merge branch 'master' into feature/domain-metadata-exporter

This commit is contained in:
Kasen IO 2020-06-15 22:51:56 -04:00
commit 7be55e19a7
88 changed files with 965 additions and 792 deletions

View file

@ -97,7 +97,7 @@ endif()
option(VCPKG_APPLOCAL_DEPS OFF) option(VCPKG_APPLOCAL_DEPS OFF)
project(athena) project(vircadia)
include("cmake/init.cmake") include("cmake/init.cmake")
include("cmake/compiler.cmake") include("cmake/compiler.cmake")
option(VCPKG_APPLOCAL_DEPS OFF) option(VCPKG_APPLOCAL_DEPS OFF)

View file

@ -976,14 +976,13 @@ while (true) {
#### [4.3.4] Source files (header and implementation) must include a boilerplate. #### [4.3.4] Source files (header and implementation) must include a boilerplate.
Boilerplates should include the filename, location, creator, copyright Vircadia contributors, and Apache 2.0 License Boilerplates should include the filename, creator, copyright Vircadia contributors, and Apache 2.0 License information.
information. This should be placed at the top of the file. If editing an existing file that is copyright High Fidelity, add a This should be placed at the top of the file. If editing an existing file that is copyright High Fidelity, add a second
second copyright line, copyright Vircadia contributors. copyright line, copyright Vircadia contributors.
```cpp ```cpp
// //
// NodeList.h // NodeList.h
// libraries/shared/src
// //
// Created by Stephen Birarda on 15 Feb 2013. // Created by Stephen Birarda on 15 Feb 2013.
// Copyright 2013 High Fidelity, Inc. // Copyright 2013 High Fidelity, Inc.

View file

@ -14,21 +14,29 @@ Vircadia is a 3D social software project seeking to incrementally bring about a
[For Windows](https://github.com/kasenvr/project-athena/blob/master/BUILD_WIN.md) [For Windows](https://github.com/kasenvr/project-athena/blob/master/BUILD_WIN.md)
[For Mac](https://github.com/kasenvr/project-athena/blob/master/BUILD_OSX.md)
[For Linux](https://github.com/kasenvr/project-athena/blob/master/BUILD_LINUX.md) [For Linux](https://github.com/kasenvr/project-athena/blob/master/BUILD_LINUX.md)
[For Linux - Athena Builder](https://github.com/kasenvr/vircadia-builder) [For Linux - Vircadia Builder](https://github.com/kasenvr/vircadia-builder)
### How to deploy a Server ### How to deploy a Server
[For Windows and Linux](https://vircadia.com/download-vircadia/#server) [For Windows and Linux](https://vircadia.com/deploy-a-server/)
### How to build a Server ### How to build a Server
[For Linux - Athena Builder](https://github.com/kasenvr/vircadia-builder) [For Linux - Vircadia Builder](https://github.com/kasenvr/vircadia-builder)
### How to generate an Installer
[For Windows](https://github.com/kasenvr/project-athena/blob/master/INSTALL.md)
[For Linux - AppImage - Vircadia Builder](https://github.com/kasenvr/vircadia-builder/blob/master/README.md#building-appimages)
### Boot to Metaverse: The Goal ### Boot to Metaverse: The Goal
Having a place to experience adventure, a place to relax with calm breath, that's a world to live in. An engine to support infinite combinations and possibilities of worlds without censorship and interruption, that's a metaverse. Finding a way to make infinite realities our reality, that's the dream. Having a place to experience adventure, a place to relax with calm breath, that's a world to live in. An engine to support infinite combinations and possibilities of worlds without censorship and interruption, that's a metaverse. Finding a way to make infinite realities our reality is the dream.
### Boot to Metaverse: The Technicals ### Boot to Metaverse: The Technicals

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View file

@ -6,9 +6,9 @@ vcpkg_from_github(
REPO REPO
xiph/opus xiph/opus
REF REF
e85ed7726db5d677c9c0677298ea0cb9c65bdd23 72a3a6c13329869000b34a12ba27d8bfdfbc22b3
SHA512 SHA512
a8c7e5bf383c06f1fdffd44d9b5f658f31eb4800cb59d12da95ddaeb5646f7a7b03025f4663362b888b1374d4cc69154f006ba07b5840ec61ddc1a1af01d6c54 590b852e966a497e33d129b58bc07d1205fe8fea9b158334cd8a3c7f539332ef9702bba4a37bd0be83eb5f04a218cef87645251899f099695d01c1eb8ea6e2fd
HEAD_REF HEAD_REF
master) master)

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View file

@ -79,7 +79,7 @@
var count = 3; var count = 3;
var handControllerRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#vr-controls"; var handControllerRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#vr-controls";
var keyboardRefURL = "https://docs.vircadia.dev/explore/get-started/desktop.html#movement-controls"; var keyboardRefURL = "https://docs.vircadia.dev/explore/get-started/desktop.html#movement-controls";
var gamepadRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#gamepad"; var gamepadRefURL = "https://docs.vircadia.dev/explore/get-started/vr-controls.html#gamepad";
function showKbm() { function showKbm() {
document.getElementById("main_image").setAttribute("src", "img/tablet-help-keyboard.jpg"); document.getElementById("main_image").setAttribute("src", "img/tablet-help-keyboard.jpg");

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="1880" height="320" viewBox="0 0 1880.00 320.00" enable-background="new 0 0 1880.00 320.00" xml:space="preserve">
<radialGradient id="SVGID_Fill1_" cx="-571.529" cy="-604.157" r="3176.39" gradientUnits="userSpaceOnUse">
<stop offset="0.451163" stop-color="#01BDFF" stop-opacity="1"/>
<stop offset="0.827907" stop-color="#8C1AFF" stop-opacity="1"/>
</radialGradient>
<path fill="url(#SVGID_Fill1_)" stroke-width="0.2" stroke-linejoin="round" d="M 28.723,5.00146L 1706.72,5.00146C 1726.61,5.00146 1750.24,21.1192 1759.51,41.0015L 1870.49,278.999C 1879.76,298.881 1871.16,314.999 1851.28,314.999L 173.277,314.999C 153.395,314.999 129.761,298.881 120.49,278.999L 9.51012,41.0015C 0.238872,21.1192 8.84079,5.00146 28.723,5.00146 Z "/>
<path fill="#36393F" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 678.939,23.013L 1697.3,23.0124C 1723.4,22.9324 1739.32,35.2514 1749.85,58.4911L 1844.51,261.508C 1860.58,289.515 1859.52,298.385 1825.06,296.987L 677.061,296.987"/>
<g>
<path fill="#FAFAFA" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 699.7,159.966C 699.7,145.281 702.032,131.093 706.698,117.404C 711.363,103.714 718.063,91.58 726.796,81.0016C 735.529,70.4231 745.996,61.9604 758.199,55.6133C 770.401,49.2663 784.039,46.0927 799.112,46.0927L 906.779,46.0927L 906.779,93.8823L 800.189,93.8823C 794.686,93.8823 789.003,95.7491 783.142,99.4827C 777.28,103.216 771.896,108.132 766.992,114.23C 762.087,120.328 758.019,127.36 754.789,135.325C 751.559,143.29 749.944,151.379 749.944,159.593C 749.944,167.807 751.499,175.896 754.61,183.861C 757.72,191.826 761.788,198.92 766.812,205.142C 771.837,211.365 777.459,216.343 783.68,220.077C 789.901,223.81 796.122,225.677 802.342,225.677L 906.779,225.677L 906.779,273.467L 798.036,273.467C 782.244,273.467 768.248,270.044 756.045,263.199C 743.843,256.354 733.555,247.456 725.181,236.504C 716.807,225.553 710.466,213.356 706.16,199.915C 701.853,186.475 699.7,173.158 699.7,159.966 Z "/>
<rect x="1464.81" y="46.0927" fill="#FAFAFA" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" width="55.9871" height="227.374"/>
</g>
<path fill="#FFFFFF" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 493.02,97.6159L 493.02,139.602L 493,139.602L 493,199.602L 493.02,199.602L 493.02,273.467L 439.123,273.467L 439.123,46.0928L 566.737,46.0928C 578.327,46.0928 588.237,48.2707 596.467,52.6265C 604.696,56.9823 611.419,62.7071 616.635,69.8009C 621.851,76.8946 625.618,84.9218 627.936,93.8824C 630.254,102.843 631.413,111.928 631.413,121.137C 631.413,128.604 630.428,136.009 628.457,143.352C 626.487,150.695 623.763,157.54 620.286,163.887C 616.809,170.234 612.578,175.896 607.594,180.874C 602.61,185.852 597.104,189.71 591.077,192.448L 654.363,273.467L 588.295,273.467L 521,188.288L 521,149.512L 566.737,149.512C 568.359,149.512 569.982,148.517 571.605,146.526C 573.227,144.534 574.618,142.17 575.777,139.432C 576.937,136.694 577.922,133.894 578.733,131.031C 579.544,128.169 579.95,125.991 579.95,124.498C 579.95,122.257 579.718,119.644 579.255,116.657C 578.791,113.67 578.038,110.746 576.995,107.883C 575.951,105.021 574.56,102.594 572.822,100.603C 571.083,98.6115 569.055,97.6159 566.737,97.6159L 493.02,97.6159 Z "/>
<g>
<rect x="340.465" y="46.0927" fill="#FFFFFF" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" width="54.9846" height="227.374"/>
</g>
<path fill="#FFFFFF" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 55.5166,46.093L 161.961,273.467L 214.479,273.467L 216.626,269.689L 115.436,46.093L 55.5166,46.093 Z "/>
<path fill="#FFFFFF" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 231.92,235.709L 319.513,46.0926L 259.594,46.0926L 202.957,171.669L 231.92,235.709 Z "/>
<path fill="#FAFAFA" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 987.874,273.467L 926.863,273.467L 1034.17,46.0927L 1088,46.0927L 1195.67,273.467L 1134.66,273.467L 1106.67,212.983L 1047.45,212.983L 1044.83,212.918L 1065.94,164.447L 1087.65,164.447L 1060.73,106.576"/>
<path fill="#FAFAFA" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 1605.13,273.467L 1544.12,273.467L 1651.43,46.0927L 1705.26,46.0927L 1812.93,273.467L 1751.91,273.467L 1723.92,212.983L 1664.7,212.983L 1662,212.918L 1683.24,164.447L 1704.9,164.447L 1677.98,106.576"/>
<path fill="#FAFAFA" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 1438.98,159.966C 1438.98,173.158 1436.83,186.475 1432.52,199.915C 1428.22,213.356 1421.88,225.553 1413.5,236.504C 1405.13,247.456 1394.84,256.354 1382.64,263.199C 1370.43,270.044 1356.44,273.467 1340.65,273.467L 1217.91,273.467L 1217.91,121.9L 1272.1,121.9L 1272.1,225.677L 1335.98,225.677C 1342.2,225.677 1348.42,223.81 1354.64,220.077C 1360.86,216.343 1366.49,211.365 1371.51,205.142C 1376.54,198.92 1380.6,191.826 1383.71,183.861C 1386.82,175.896 1388.38,167.807 1388.38,159.593C 1388.38,150.632 1386.58,142.17 1383,134.205C 1379.41,126.24 1375.04,119.271 1369.9,113.297C 1364.75,107.323 1359.31,102.594 1353.57,99.1094C 1347.82,95.6247 1342.8,93.8824 1338.49,93.8824L 1272.1,93.8824L 1272.1,93.9001L 1217.91,93.9001L 1217.91,46.0927L 1332.03,46.0927C 1350.46,46.0927 1366.43,49.0796 1379.95,55.0533C 1393.46,61.0269 1404.59,69.1163 1413.32,79.3215C 1422.06,89.5265 1428.52,101.536 1432.7,115.35C 1436.89,129.165 1438.98,144.037 1438.98,159.966 Z "/>
</svg>

View file

@ -85,7 +85,9 @@ FocusScope {
Image { Image {
id: banner id: banner
anchors.centerIn: parent anchors.centerIn: parent
source: "../images/project-athena-banner-color2.svg" sourceSize.width: 500
sourceSize.height: 91
source: "../images/vircadia-logo.svg"
horizontalAlignment: Image.AlignHCenter horizontalAlignment: Image.AlignHCenter
} }
} }

View file

@ -23,7 +23,7 @@ Item {
clip: true clip: true
height: root.height height: root.height
width: root.width width: root.width
readonly property string termsContainerText: qsTr("By signing up, you agree to Project Athena's Terms of Service") readonly property string termsContainerText: qsTr("By signing up, you agree to Vircadia's Terms of Service")
property int textFieldHeight: 31 property int textFieldHeight: 31
property string fontFamily: "Raleway" property string fontFamily: "Raleway"
property int fontSize: 15 property int fontSize: 15

View file

@ -19,7 +19,7 @@ import TabletScriptingInterface 1.0
Item { Item {
id: usernameCollisionBody id: usernameCollisionBody
clip: true clip: true
readonly property string termsContainerText: qsTr("By creating this user profile, you agree to Project Athena's Terms of Service") readonly property string termsContainerText: qsTr("By creating this user profile, you agree to Vircadia's Terms of Service")
width: root.width width: root.width
height: root.height height: root.height
readonly property string fontFamily: "Raleway" readonly property string fontFamily: "Raleway"

View file

@ -81,7 +81,9 @@ FocusScope {
Image { Image {
id: banner id: banner
anchors.centerIn: parent anchors.centerIn: parent
source: "../images/high-fidelity-banner.svg" sourceSize.width: 500
sourceSize.height: 91
source: "../images/vircadia-logo.svg"
horizontalAlignment: Image.AlignHCenter horizontalAlignment: Image.AlignHCenter
} }
} }

View file

@ -109,7 +109,7 @@ SpinBox {
id: spinboxText id: spinboxText
z: 2 z: 2
color: isLightColorScheme color: isLightColorScheme
? (spinBox.activeFocus ? hifi.colors.black : hifi.colors.faintGray) ? (spinBox.activeFocus ? hifi.colors.black : hifi.colors.baseGrayHighlight)
: (spinBox.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText) : (spinBox.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText)
selectedTextColor: hifi.colors.black selectedTextColor: hifi.colors.black
selectionColor: hifi.colors.primaryHighlight selectionColor: hifi.colors.primaryHighlight
@ -130,7 +130,7 @@ SpinBox {
} }
color: isLightColorScheme color: isLightColorScheme
? (spinBox.activeFocus ? hifi.colors.black : hifi.colors.faintGray) ? (spinBox.activeFocus ? hifi.colors.black : hifi.colors.baseGrayHighlight)
: (spinBox.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText) : (spinBox.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText)
text: suffix text: suffix
verticalAlignment: Qt.AlignVCenter verticalAlignment: Qt.AlignVCenter

View file

@ -129,7 +129,9 @@ FocusScope {
Image { Image {
id: banner id: banner
anchors.centerIn: parent anchors.centerIn: parent
source: "../../images/project-athena-banner-color2.svg" sourceSize.width: 400
sourceSize.height: 73
source: "../../images/vircadia-logo.svg"
horizontalAlignment: Image.AlignHCenter horizontalAlignment: Image.AlignHCenter
} }
} }

View file

@ -403,7 +403,6 @@ Rectangle {
Vector3 { Vector3 {
id: positionVector id: positionVector
backgroundColor: "lightgray"
enabled: getCurrentWearable() !== null enabled: getCurrentWearable() !== null
function set(localPosition) { function set(localPosition) {
@ -463,7 +462,6 @@ Rectangle {
Vector3 { Vector3 {
id: rotationVector id: rotationVector
backgroundColor: "lightgray"
enabled: getCurrentWearable() !== null enabled: getCurrentWearable() !== null
function set(localRotationAngles) { function set(localRotationAngles) {
@ -550,7 +548,7 @@ Rectangle {
realFrom: 0.1 realFrom: 0.1
realTo: 3.0 realTo: 3.0
realValue: 1.0 realValue: 1.0
backgroundColor: "lightgray" backgroundColor: activeFocus ? "white" : "lightgray"
width: positionVector.spinboxWidth width: positionVector.spinboxWidth
colorScheme: hifi.colorSchemes.light colorScheme: hifi.colorSchemes.light

View file

@ -29,7 +29,7 @@ Row {
id: xspinner id: xspinner
width: parent.spinboxWidth width: parent.spinboxWidth
labelInside: "X:" labelInside: "X:"
backgroundColor: parent.backgroundColor backgroundColor: activeFocus ? "white" : "lightgray"
colorLabelInside: hifi.colors.redHighlight colorLabelInside: hifi.colors.redHighlight
colorScheme: hifi.colorSchemes.light colorScheme: hifi.colorSchemes.light
decimals: root.decimals; decimals: root.decimals;
@ -43,7 +43,7 @@ Row {
id: yspinner id: yspinner
width: parent.spinboxWidth width: parent.spinboxWidth
labelInside: "Y:" labelInside: "Y:"
backgroundColor: parent.backgroundColor backgroundColor: activeFocus ? "white" : "lightgray"
colorLabelInside: hifi.colors.greenHighlight colorLabelInside: hifi.colors.greenHighlight
colorScheme: hifi.colorSchemes.light colorScheme: hifi.colorSchemes.light
decimals: root.decimals; decimals: root.decimals;
@ -57,7 +57,7 @@ Row {
id: zspinner id: zspinner
width: parent.spinboxWidth width: parent.spinboxWidth
labelInside: "Z:" labelInside: "Z:"
backgroundColor: parent.backgroundColor backgroundColor: activeFocus ? "white" : "lightgray"
colorLabelInside: hifi.colors.primaryHighlight colorLabelInside: hifi.colors.primaryHighlight
colorScheme: hifi.colorSchemes.light colorScheme: hifi.colorSchemes.light
decimals: root.decimals; decimals: root.decimals;

View file

@ -23,9 +23,9 @@ Rectangle {
spacing: 5 spacing: 5
Image { Image {
sourceSize.width: 295 width: 400; height: 73
sourceSize.height: 75 fillMode: Image.PreserveAspectFit
source: "../../../images/about-projectathena.png" source: "../../../images/vircadia-logo.svg"
} }
Item { height: 30; width: 1 } Item { height: 30; width: 1 }
Column { Column {

View file

@ -3790,8 +3790,7 @@ void Application::setPreferredCursor(const QString& cursorName) {
if (_displayPlugin && _displayPlugin->isHmd()) { if (_displayPlugin && _displayPlugin->isHmd()) {
_preferredCursor.set(cursorName.isEmpty() ? DEFAULT_CURSOR_NAME : cursorName); _preferredCursor.set(cursorName.isEmpty() ? DEFAULT_CURSOR_NAME : cursorName);
} } else {
else {
_preferredCursor.set(cursorName.isEmpty() ? Cursor::Manager::getIconName(Cursor::Icon::SYSTEM) : cursorName); _preferredCursor.set(cursorName.isEmpty() ? Cursor::Manager::getIconName(Cursor::Icon::SYSTEM) : cursorName);
} }

View file

@ -614,13 +614,13 @@ Menu::Menu() {
addCheckableActionToQMenuAndActionHash(networkMenu, addCheckableActionToQMenuAndActionHash(networkMenu,
MenuOption::DisableActivityLogger, MenuOption::DisableActivityLogger,
0, 0,
false, true,
&UserActivityLogger::getInstance(), &UserActivityLogger::getInstance(),
SLOT(disable(bool))); SLOT(disable(bool)));
addCheckableActionToQMenuAndActionHash(networkMenu, addCheckableActionToQMenuAndActionHash(networkMenu,
MenuOption::DisableCrashLogger, MenuOption::DisableCrashLogger,
0, 0,
false, true,
&UserActivityLogger::getInstance(), &UserActivityLogger::getInstance(),
SLOT(crashMonitorDisable(bool))); SLOT(crashMonitorDisable(bool)));
addActionToQMenuAndActionHash(networkMenu, MenuOption::ShowDSConnectTable, 0, addActionToQMenuAndActionHash(networkMenu, MenuOption::ShowDSConnectTable, 0,
@ -796,13 +796,13 @@ Menu::Menu() {
}); });
helpMenu->addSeparator(); helpMenu->addSeparator();
// Help > Athena Docs // Help > Vircadia Docs
action = addActionToQMenuAndActionHash(helpMenu, "Online Documentation"); action = addActionToQMenuAndActionHash(helpMenu, "Online Documentation");
connect(action, &QAction::triggered, qApp, [] { connect(action, &QAction::triggered, qApp, [] {
QDesktopServices::openUrl(QUrl("https://docs.vircadia.dev/")); QDesktopServices::openUrl(QUrl("https://docs.vircadia.dev/"));
}); });
// Help > Athena Forum // Help > Vircadia Forum
/* action = addActionToQMenuAndActionHash(helpMenu, "Online Forums"); /* action = addActionToQMenuAndActionHash(helpMenu, "Online Forums");
connect(action, &QAction::triggered, qApp, [] { connect(action, &QAction::triggered, qApp, [] {
QDesktopServices::openUrl(QUrl("https://forums.highfidelity.com/")); QDesktopServices::openUrl(QUrl("https://forums.highfidelity.com/"));

View file

@ -86,7 +86,7 @@ namespace MenuOption {
const QString DeleteAvatarEntitiesBookmark = "Delete Avatar Entities Bookmark"; const QString DeleteAvatarEntitiesBookmark = "Delete Avatar Entities Bookmark";
const QString DeleteBookmark = "Delete Bookmark..."; const QString DeleteBookmark = "Delete Bookmark...";
const QString DisableActivityLogger = "Disable Activity Logger"; const QString DisableActivityLogger = "Disable Activity Logger";
const QString DisableCrashLogger = "Disable Crash Logger"; const QString DisableCrashLogger = "Disable Crash Reporter";
const QString DisableEyelidAdjustment = "Disable Eyelid Adjustment"; const QString DisableEyelidAdjustment = "Disable Eyelid Adjustment";
const QString DisableLightEntities = "Disable Light Entities"; const QString DisableLightEntities = "Disable Light Entities";
const QString DisplayCrashOptions = "Display Crash Options"; const QString DisplayCrashOptions = "Display Crash Options";

View file

@ -987,8 +987,8 @@ void EntityScriptingInterface::deleteEntity(const QUuid& id) {
// Deleting an entity has consequences for linked children: some can be deleted but others can't. // Deleting an entity has consequences for linked children: some can be deleted but others can't.
// Local- and my-avatar-entities can be deleted immediately, but other-avatar-entities can't be deleted // Local- and my-avatar-entities can be deleted immediately, but other-avatar-entities can't be deleted
// by this context, and a domain-entity must rountrip through the entity-server for authorization. // by this context, and a domain-entity must round trip through the entity-server for authorization.
if (entity->isDomainEntity()) { if (entity->isDomainEntity() && !_entityTree->isServerlessMode()) {
getEntityPacketSender()->queueEraseEntityMessage(id); getEntityPacketSender()->queueEraseEntityMessage(id);
} else { } else {
entitiesToDeleteImmediately.push_back(entity); entitiesToDeleteImmediately.push_back(entity);

View file

@ -59,7 +59,7 @@ private slots:
private: private:
UserActivityLogger(); UserActivityLogger();
Setting::Handle<bool> _disabled { "UserActivityLoggerDisabled", true }; Setting::Handle<bool> _disabled { "UserActivityLoggerDisabled", true };
Setting::Handle<bool> _crashMonitorDisabled { "CrashMonitorDisabled", false }; Setting::Handle<bool> _crashMonitorDisabled { "CrashMonitorDisabled2", true };
QElapsedTimer _timer; QElapsedTimer _timer;
}; };

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,107 +1,99 @@
#!/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
DEB_BUILD_ROOT=temp-make-deb/athena-server-$VERSION-0ubuntu1 DEB_BUILD_ROOT=temp-make-deb/vircadia-server-$VERSION-0ubuntu1
rm -r temp-make-deb rm -r temp-make-deb
mkdir -p $DEB_BUILD_ROOT mkdir -p $DEB_BUILD_ROOT
# 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
#begin the debian package construction #begin the debian package construction
cd $DEB_BUILD_ROOT cd $DEB_BUILD_ROOT
dh_make -p athena-server_$VERSION-0ubuntu1 -c apache -s --createorig -y dh_make -p vircadia-server_$VERSION-0ubuntu1 -c apache -s --createorig -y
cp $ATHENA/source/pkg-scripts/athena-assignment-client.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client.service debian
cp $ATHENA/source/pkg-scripts/athena-assignment-client@.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-assignment-client@.service debian
cp $ATHENA/source/pkg-scripts/athena-domain-server.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server.service debian
cp $ATHENA/source/pkg-scripts/athena-domain-server@.service debian cp $VIRCADIA/source/pkg-scripts/vircadia-domain-server@.service debian
#cp $ATHENA/source/pkg-scripts/athena-ice-server.service debian #cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server.service debian
#cp $ATHENA/source/pkg-scripts/athena-ice-server@.service debian #cp $VIRCADIA/source/pkg-scripts/vircadia-ice-server@.service debian
cp $ATHENA/source/pkg-scripts/athena-server.target debian cp $VIRCADIA/source/pkg-scripts/vircadia-server.target debian
cp $ATHENA/source/pkg-scripts/athena-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/LICENSE debian/copyright cp $VIRCADIA/source/pkg-scripts/server-postrm debian/postrm
cp $VIRCADIA/source/LICENSE debian/copyright
echo /etc/opt/athena > debian/dirs echo /etc/opt/vircadia > debian/dirs
echo /var/lib/athena >> debian/dirs echo /var/lib/vircadia >> debian/dirs
echo README.md > debian/docs echo README.md > debian/docs
echo README_hifi.md >> debian/docs echo README_hifi.md >> debian/docs
echo assignment-client opt/athena > debian/install echo assignment-client opt/vircadia > debian/install
echo domain-server opt/athena >> debian/install echo domain-server opt/vircadia >> debian/install
echo oven opt/athena >> debian/install echo oven opt/vircadia >> debian/install
#echo ice-server opt/athena >> debian/install #echo ice-server opt/vircadia >> debian/install
echo new-server opt/athena >> debian/install echo new-server opt/vircadia >> debian/install
for so in *.so.*.*.*; do for so in *.so.*.*.*; do
echo $so opt/athena/lib >> debian/install echo $so opt/vircadia/lib >> debian/install
done done
for so in *.so; do for so in *.so; do
echo $so opt/athena/lib >> debian/install echo $so opt/vircadia/lib >> debian/install
done done
#for service in *.service; do #for service in *.service; do
# echo $service opt/athena/systemd >> debian/install # echo $service opt/vircadia/systemd >> debian/install
#done #done
#for target in *.target; do #for target in *.target; do
# echo $target opt/athena/systemd >> debian/install # echo $target opt/vircadia/systemd >> debian/install
#done #done
find resources -type f -exec sh -c 'echo {} opt/athena/$(dirname "{}") >> debian/install' \; find resources -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \;
find plugins -type f -exec sh -c 'echo {} opt/athena/$(dirname "{}") >> debian/install' \; find plugins -type f -exec sh -c 'echo {} opt/vircadia/$(dirname "{}") >> debian/install' \;
#echo usr/lib/systemd/system/athena-assignment-client.service opt/athena/systemd/athena-assignment-client.service > debian/athena-server.links SOFILES=`ls *.so *.so.*.*.* | grep -Po '^(.+\.so(\.\d+)?)' | sed 's/\./\\\./g' | paste -d'|' -s`
#echo usr/lib/systemd/system/athena-assignment-client@.service opt/athena/systemd/athena-assignment-client@.service >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-domain-server.service opt/athena/systemd/athena-domain-server.service >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-domain-server@.service opt/athena/systemd/athena-domain-server@.service >> debian/athena-server.links
##echo usr/lib/systemd/system/athena-ice-server.service opt/athena/systemd/athena-ice-server.service >> debian/athena-server.links
##echo usr/lib/systemd/system/athena-ice-server@.service opt/athena/systemd/athena-ice-server@.service >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-server.target opt/athena/systemd/athena-server.target >> debian/athena-server.links
#echo usr/lib/systemd/system/athena-server@.target opt/athena/systemd/athena-server@.target >> debian/athena-server.links
SOFILES=`ls *.so *.so.*.*.* | sed 's/\./\\\./g' | paste -d'|' -s` 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 $VIRCADIA/source/pkg-scripts/server-rules debian/rules
sed "s/{DEPENDS}/$DEPENDS/" $VIRCADIA/source/pkg-scripts/server-control > debian/control
cp $ATHENA/source/pkg-scripts/server-rules debian/rules
sed "s/{DEPENDS}/$DEPENDS/" $ATHENA/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-athena-supervisor.conf $DOCK_BUILD_ROOT/athena.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/*
@ -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` DEPENDS=`find $DOCK_BUILD_ROOT/opt $DOCK_BUILD_ROOT/lib -type f -executable -exec sh -c 'objdump -p {} | grep NEEDED' \; | awk '{print $2}' | sort | uniq | egrep -v "^($SOFILES)$" | xargs -n 1 -I {} sh -c 'dpkg -S {} | head -n 1' | cut -d ':' -f 1 | sort | uniq | paste -d' ' -s`
cd $DOCK_BUILD_ROOT cd $DOCK_BUILD_ROOT
docker build -t odysseus654/athena-server --build-arg "DEPENDS=$DEPENDS" --build-arg "GITSRC=$GITSRC" --build-arg "GITDATE=$GITDATE" --build-arg "GITCOMMIT=$GITCOMMIT" . docker build -t odysseus654/vircadia-server --build-arg "DEPENDS=$DEPENDS" --build-arg "GITSRC=$GITSRC" --build-arg "GITDATE=$GITDATE" --build-arg "GITCOMMIT=$GITCOMMIT" .

View file

@ -1,44 +1,42 @@
#!/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/libQt5Quick.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \ $VIRCADIA/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/libQt5Quick.so.*.*.* \
$ATHENA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \ $VIRCADIA/qt5-install/lib/libQt5ScriptTools.so.*.*.* \
$ATHENA/build/ext/makefiles/quazip/project/lib/libquazip5.so.*.*.* \ $VIRCADIA/build/assignment-client/plugins/*.so \
$ATHENA/build/assignment-client/plugins/*.so \ $VIRCADIA/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 +49,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 ./athena-server.spec rpmbuild --target x86_64 -bb ./vircadia-server.spec
mv ~/rpmbuild/RPMS/x86_64/*.rpm . mv ~/rpmbuild/RPMS/x86_64/*.rpm .

View file

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

View file

@ -1,15 +1,15 @@
Source: athena-server Source: vircadia-server
Section: comm Section: comm
Priority: optional Priority: optional
Maintainer: Heather Anderson <heath@odysseus.anderson.name> Maintainer: Heather Anderson <heath@odysseus.anderson.name>
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
Package: athena-server Package: vircadia-server
Architecture: any Architecture: any
Depends: adduser, {DEPENDS} Depends: adduser, {DEPENDS}
Description: Project Athena allows creation and sharing of VR experiences. Description: Vircadia allows creation and sharing of VR experiences.
The Project Athena metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment. The Vircadia metaverse provides built-in social features, including avatar interactions, spatialized audio and interactive physics. Additionally, you have the ability to import any 3D object into your virtual environment.

View file

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# postinst script for athena-server # postinst script for vircadia-server
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
@ -17,23 +17,55 @@ 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
case "$1" in case "$1" in
configure) configure)
ldconfig -n /opt/athena/lib ldconfig -n /opt/vircadia/lib
adduser --system --quiet --gecos "Project Athena" --home /var/lib/athena --group --no-create-home athena adduser --system --quiet --gecos "Vircadia" --home /var/lib/vircadia --group --no-create-home vircadia
mkdir -p /var/lib/athena mkdir -p /var/lib/vircadia
chown athena:athena /var/lib/athena chown vircadia:vircadia /var/lib/vircadia
chmod 775 /var/lib/athena chmod 775 /var/lib/vircadia
if [ ! -d "/var/lib/athena/default" ]; then if [ ! -d "/var/lib/vircadia/default" ]; then
/opt/athena/new-server default 40100 if [ -d "/var/lib/athena" ]; then
systemctl enable athena-server@default.target ATHENA_ACTIVE=`systemctl list-units \
systemctl start athena-server@default.target | 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 fi
;; ;;
abort-remove|abort-deconfigure) abort-remove|abort-deconfigure)
ldconfig -n /opt/athena/lib ldconfig -n /opt/vircadia/lib
;; ;;
abort-upgrade) abort-upgrade)

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

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

View file

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# prerm script for athena-server # prerm script for vircadia-server
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
@ -19,7 +19,11 @@ set -e
case "$1" in case "$1" in
remove) 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) upgrade|deconfigure)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -73,6 +73,9 @@
<body onload="retrieveAddressList()"> <body onload="retrieveAddressList()">
<h3>Explore</h3> <h3>Explore</h3>
<button class="myButton" onclick="navigateBack()">< Back</button>
<button class="myButton" onclick="navigateHome()">Home</button>
<button class="myButton" onclick="navigateForward()">Forward ></button>
<input type="text" id="domainAddressInput" placeholder="Type domain address here"> <input type="text" id="domainAddressInput" placeholder="Type domain address here">
@ -85,16 +88,37 @@
<script> <script>
function myDomainAddressInputGoTo() { function myDomainAddressInputGoTo() {
var hifiUrl = document.getElementById("domainAddressInput").value; var vircadiaUrl = document.getElementById("domainAddressInput").value;
if (hifiUrl != "") { if (vircadiaUrl !== "") {
var readyEvent = { var readyEvent = {
"action": "goToUrl", "action": "goToUrl",
"visit": hifiUrl, "visit": vircadiaUrl,
}; };
EventBridge.emitWebEvent(JSON.stringify(readyEvent)); EventBridge.emitWebEvent(JSON.stringify(readyEvent));
} }
} }
function navigateBack() {
var readyEvent = {
"action": "navigateBack"
}
EventBridge.emitWebEvent(JSON.stringify(readyEvent));
}
function navigateHome() {
var readyEvent = {
"action": "navigateHome"
}
EventBridge.emitWebEvent(JSON.stringify(readyEvent));
}
function navigateForward() {
var readyEvent = {
"action": "navigateForward"
}
EventBridge.emitWebEvent(JSON.stringify(readyEvent));
}
function navigateTo(url) { function navigateTo(url) {
var readyEvent = { var readyEvent = {
"action": "goToUrl", "action": "goToUrl",

View file

@ -48,7 +48,7 @@
function onWebEventReceived(event) { function onWebEventReceived(event) {
messageData = JSON.parse(event); messageData = JSON.parse(event);
if (messageData.action == "requestAddressList") { if (messageData.action === "requestAddressList") {
goToAddresses = Settings.getValue("goToDecentral", ""); goToAddresses = Settings.getValue("goToDecentral", "");
for (var i = 0; i < goToAddresses.length; i++) { for (var i = 0; i < goToAddresses.length; i++) {
@ -80,14 +80,27 @@
tablet.emitScriptEvent(JSON.stringify(readyEvent)); tablet.emitScriptEvent(JSON.stringify(readyEvent));
} else if (messageData.action == "goToUrl") { } else if (messageData.action === "goToUrl") {
Window.location = messageData.visit; Window.location = messageData.visit;
} else if (messageData.action == "addLocation") { } else if (messageData.action === "navigateBack") {
location.goBack();
} else if (messageData.action === "navigateHome") {
if (LocationBookmarks.getHomeLocationAddress()) {
location.handleLookupString(LocationBookmarks.getHomeLocationAddress());
} else {
location.goToLocalSandbox();
}
} else if (messageData.action === "navigateForward") {
location.goForward();
} else if (messageData.action === "addLocation") {
var locationBoxUserData = { var locationBoxUserData = {
owner: messageData.owner, owner: messageData.owner,
domainName: messageData.domainName, domainName: messageData.domainName,
port: messageData.Port, port: messageData.Port,
ipAddress: null,
avatarCountRadius: null,
customPath: null,
grabbableKey: { grabbableKey: {
grabbable: false grabbable: false
} }
@ -105,7 +118,7 @@
collisionless: true, collisionless: true,
grabbable: false grabbable: false
}); });
} else if (messageData.action == "retrievePortInformation") { } else if (messageData.action === "retrievePortInformation") {
var readyEvent = { var readyEvent = {
"action": "retrievePortInformationResponse", "action": "retrievePortInformationResponse",
"goToAddresses": goToAddresses "goToAddresses": goToAddresses

View file

@ -23,7 +23,6 @@ var DEFAULT_SCRIPTS_COMBINED = [
"system/pal.js", // "system/mod.js", // older UX, if you prefer "system/pal.js", // "system/mod.js", // older UX, if you prefer
"system/avatarapp.js", "system/avatarapp.js",
"system/makeUserConnection.js", "system/makeUserConnection.js",
"system/tablet-goto.js",
"system/marketplaces/marketplaces.js", "system/marketplaces/marketplaces.js",
"system/notifications.js", "system/notifications.js",
"system/commerce/wallet.js", "system/commerce/wallet.js",
@ -41,7 +40,7 @@ var DEFAULT_SCRIPTS_SEPARATE = [
"system/controllers/controllerScripts.js", "system/controllers/controllerScripts.js",
"communityModules/notificationCore/notificationCore.js", "communityModules/notificationCore/notificationCore.js",
"simplifiedUI/ui/simplifiedNametag/simplifiedNametag.js", "simplifiedUI/ui/simplifiedNametag/simplifiedNametag.js",
{"stable": "system/more/app-more.js", "beta": "https://kasenvr.github.io/community-apps/more/app-more.js"}, {"stable": "system/more/app-more.js", "beta": "https://cdn.vircadia.com/community-apps/more/app-more.js"},
{"stable": "communityScripts/explore/explore.js", "beta": "https://metaverse.vircadia.com/interim/d-goto/app/explore.js"}, {"stable": "communityScripts/explore/explore.js", "beta": "https://metaverse.vircadia.com/interim/d-goto/app/explore.js"},
{"stable": "communityModules/chat/FloofChat.js", "beta": "https://content.fluffy.ws/scripts/chat/FloofChat.js"} {"stable": "communityModules/chat/FloofChat.js", "beta": "https://content.fluffy.ws/scripts/chat/FloofChat.js"}
//"system/chat.js" //"system/chat.js"

View file

@ -123,10 +123,11 @@ function orientationOf(vector) {
} }
function handleRadialMode(dx, dy) { function handleRadialMode(dx, dy) {
var MIN_INSPECT_RADIUS = 0.1;
azimuth += dx / AZIMUTH_RATE; azimuth += dx / AZIMUTH_RATE;
radius += radius * dy * RADIUS_RATE; radius += radius * dy * RADIUS_RATE;
if (radius < 1) { if (radius < MIN_INSPECT_RADIUS) {
radius = 1; radius = MIN_INSPECT_RADIUS;
} }
vector = { vector = {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 199 KiB