Merge branch 'kasen/core' into kasen/core

This commit is contained in:
George Deac 2020-01-23 23:21:22 +02:00 committed by GitHub
commit bbae98e194
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 611 additions and 557 deletions

View file

@ -14,80 +14,77 @@ sudo add-apt-repository universe
sudo apt-get update
```
#### Install build tools:
1. First update the repositiories:
- First update the repositiories:
```bash
sudo apt-get update -y
sudo apt-get upgrade -y
```
1. git
- git
```bash
sudo apt-get install git -y
```
Verify by git --version
1. g++
- g++
```bash
sudo apt-get install g++ -y
```
Verify by g++ --version
1. *Ubuntu 18.04* cmake
- *Ubuntu 18.04* cmake
```bash
sudo apt-get install cmake -y
```
Verify by cmake --version
1. *Ubuntu 16.04* cmake
- *Ubuntu 16.04* cmake
```bash
wget https://cmake.org/files/v3.14/cmake-3.14.2-Linux-x86_64.sh
sudo sh cmake-3.14.2-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir
```
#### Install build dependencies:
1. OpenSSL
- OpenSSL:
```bash
sudo apt-get install libssl-dev
```
Verify with `openssl version`
1. OpenGL
Verify (first install mesa-utils - `sudo apt install mesa-utils -y`) by `glxinfo | grep "OpenGL version"`
- OpenGL:
```bash
sudo apt-get install libgl1-mesa-dev -y
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
```
- Verify OpenGL:
- First install mesa-utils with the command `sudo apt install mesa-utils -y`
- Then run `glxinfo | grep "OpenGL version"`
#### To compile interface in a server you must install:
```bash
sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1
```
1. Misc dependencies
- Misc dependencies:
```bash
sudo apt-get install libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev
```
1. To compile interface in a server you must install:
- Install Python 3 and required packages:
```bash
sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1
sudo apt-get install python python3 python3-distro
```
1. Install Python 3 and required packages
```bash
sudo apt-get install python3 python3-distro
```
1. Install node, required to build the jsdoc documentation
- Install node, required to build the jsdoc documentation:
```bash
sudo apt-get install nodejs
```
### Get code and checkout the tag you need
### Get code and checkout the branch you need
Clone this repository:
```bash
git clone https://github.com/kasenvr/project-athena.git
```
To compile a RELEASE version checkout the tag you need getting a list of all tags:
To compile a DEV version checkout the branch you need. To get a list of all tags:
```bash
git fetch -a
git tag
```
Then checkout last tag with:
Then checkout the main branch with:
```bash
git checkout tag/1.0
git checkout kasen/core
```
### Compiling
@ -104,7 +101,7 @@ Prepare makefiles:
cmake ..
```
* If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg.
- If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg.
Start compilation of the server and get a cup of coffee:
```bash
@ -116,7 +113,15 @@ To compile interface:
make interface
```
In a server, it does not make sense to compile interface
The commands above will compile with a single thread. If you have enough memory,
you can decrease your build time using the `-j` flag. Since most x64 CPUs
support two threads per core, this works out to CPU_COUNT*2. As an example, if
you have a 2 core machine, you could use:
```
make -j4 interface
```
In a server, it does not make sense to compile interface.
### Running the software
@ -143,6 +148,13 @@ Running interface:
Go to localhost in the running interface.
#### Notes
If your goal is to set up a development environment, it is desirable to set the
directory that vcpkg builds into with the `HIFI_VCPKG_BASE` environment variable.
For example, you might set `HIFI_VCPKG_BASE` to `/home/$USER/vcpkg`.
By default, vcpkg will build in the system `/tmp` directory.
##### Ubuntu 18.04 only
In Ubuntu 18.04 there is a problem related with NVidia driver library version.

View file

@ -1,9 +1,5 @@
# Project Athena
### [Download ALPHA-DEV v0.86.0 K1 (Windows 64-bit, .zip)](https://realities.dev/cdn/hifi-community/v0860-kasen-VS-release+freshstart/Packaged_Release.zip)
This build has been tested on Windows 10 Pro 64-bit w/ Nvidia graphics drivers.
#### v0.86.0 K1 (12/3/19)
* Audio Buffer choppy audio bugfix by increasing the buffer size.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View file

@ -18,20 +18,20 @@ macro(GENERATE_INSTALLERS)
if (CLIENT_ONLY)
set(_PACKAGE_NAME_EXTRA "-Interface")
set(INSTALLER_TYPE "client_only")
string(REGEX REPLACE "High Fidelity" "High Fidelity Interface" _DISPLAY_NAME ${BUILD_ORGANIZATION})
string(REGEX REPLACE "Project Athena" "Project Athena Interface" _DISPLAY_NAME ${BUILD_ORGANIZATION})
elseif (SERVER_ONLY)
set(_PACKAGE_NAME_EXTRA "-Sandbox")
set(INSTALLER_TYPE "server_only")
string(REGEX REPLACE "High Fidelity" "High Fidelity Sandbox" _DISPLAY_NAME ${BUILD_ORGANIZATION})
string(REGEX REPLACE "Project Athena" "Project Athena Sandbox" _DISPLAY_NAME ${BUILD_ORGANIZATION})
else ()
set(_DISPLAY_NAME ${BUILD_ORGANIZATION})
set(INSTALLER_TYPE "full")
endif ()
set(CPACK_PACKAGE_NAME ${_DISPLAY_NAME})
set(CPACK_PACKAGE_VENDOR "High Fidelity")
set(CPACK_PACKAGE_VENDOR "Project Athena")
set(CPACK_PACKAGE_VERSION ${BUILD_VERSION})
set(CPACK_PACKAGE_FILE_NAME "HighFidelity-Beta${_PACKAGE_NAME_EXTRA}-${BUILD_VERSION}")
set(CPACK_PACKAGE_FILE_NAME "ProjectAthena-Alpha${_PACKAGE_NAME_EXTRA}-${BUILD_VERSION}")
set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME})
set(CPACK_NSIS_PACKAGE_NAME ${_DISPLAY_NAME})
if (PR_BUILD)
@ -118,11 +118,11 @@ macro(GENERATE_INSTALLERS)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
if (BUILD_CLIENT)
cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "High Fidelity Interface")
cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "Project Athena Interface")
endif ()
if (BUILD_SERVER)
cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "High Fidelity Sandbox")
cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "Project Athena Sandbox")
endif ()
include(CPack)

View file

@ -35,7 +35,7 @@ macro(SET_PACKAGING_PARAMETERS)
set(DEPLOY_PACKAGE TRUE)
set(PRODUCTION_BUILD 1)
set(BUILD_VERSION ${RELEASE_NUMBER})
set(BUILD_ORGANIZATION "High Fidelity")
set(BUILD_ORGANIZATION "Project Athena")
set(HIGH_FIDELITY_PROTOCOL "hifi")
set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp")
set(INTERFACE_BUNDLE_NAME "interface")
@ -60,7 +60,7 @@ macro(SET_PACKAGING_PARAMETERS)
set(DEPLOY_PACKAGE TRUE)
set(PR_BUILD 1)
set(BUILD_VERSION "PR${RELEASE_NUMBER}")
set(BUILD_ORGANIZATION "High Fidelity - PR${RELEASE_NUMBER}")
set(BUILD_ORGANIZATION "Project Athena - PR${RELEASE_NUMBER}")
set(INTERFACE_BUNDLE_NAME "interface")
set(INTERFACE_ICON_PREFIX "interface-beta")
@ -69,7 +69,7 @@ macro(SET_PACKAGING_PARAMETERS)
else ()
set(DEV_BUILD 1)
set(BUILD_VERSION "dev")
set(BUILD_ORGANIZATION "High Fidelity - ${BUILD_VERSION}")
set(BUILD_ORGANIZATION "Project Athena - ${BUILD_VERSION}")
set(INTERFACE_BUNDLE_NAME "interface")
set(INTERFACE_ICON_PREFIX "interface-beta")
@ -192,21 +192,21 @@ macro(SET_PACKAGING_PARAMETERS)
# shortcut names
if (PRODUCTION_BUILD)
set(INTERFACE_SHORTCUT_NAME "High Fidelity")
set(INTERFACE_SHORTCUT_NAME "Project Athena")
set(CONSOLE_SHORTCUT_NAME "Console")
set(SANDBOX_SHORTCUT_NAME "Sandbox")
set(APP_USER_MODEL_ID "com.highfidelity.console")
else ()
set(INTERFACE_SHORTCUT_NAME "High Fidelity - ${BUILD_VERSION_NO_SHA}")
set(INTERFACE_SHORTCUT_NAME "Project Athena - ${BUILD_VERSION_NO_SHA}")
set(CONSOLE_SHORTCUT_NAME "Console - ${BUILD_VERSION_NO_SHA}")
set(SANDBOX_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION_NO_SHA}")
endif ()
set(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}")
set(CONSOLE_HF_SHORTCUT_NAME "High Fidelity ${CONSOLE_SHORTCUT_NAME}")
set(SANDBOX_HF_SHORTCUT_NAME "High Fidelity ${SANDBOX_SHORTCUT_NAME}")
set(CONSOLE_HF_SHORTCUT_NAME "Project Athena ${CONSOLE_SHORTCUT_NAME}")
set(SANDBOX_HF_SHORTCUT_NAME "Project Athena ${SANDBOX_SHORTCUT_NAME}")
set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "High Fidelity")
set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "Project Athena")
set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console")
# check if we need to find signtool

View file

@ -161,7 +161,7 @@
;General
; hide install details since we show an image slideshow in their place
ShowInstDetails nevershow
ShowInstDetails hide
; leverage the UAC NSIS plugin to promote uninstaller to elevated privileges
!include UAC.nsh
@ -199,15 +199,18 @@
!system "$%TEMP%\tempinstaller.exe" = 2
; NOTE: We're not code signing right now, so we're going to disable that.
; TODO: Get a code signing certificate so we can re-enable code signing.
; The Inner invocation has written an uninstaller binary for us.
; We need to sign it if it's a production or PR build.
!if @PRODUCTION_BUILD@ == 1
!if @BYPASS_SIGNING@ == 1
!warning "BYPASS_SIGNING set - installer will not be signed"
!else
!system '"@SIGNTOOL_EXECUTABLE@" sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td SHA256 $%TEMP%\@UNINSTALLER_NAME@' = 0
!endif
!endif
; !if @PRODUCTION_BUILD@ == 1
; !if @BYPASS_SIGNING@ == 1
; !warning "BYPASS_SIGNING set - installer will not be signed"
; !else
; !system '"@SIGNTOOL_EXECUTABLE@" sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td SHA256 $%TEMP%\@UNINSTALLER_NAME@' = 0
; !endif
; !endif
; Good. Now we can carry on writing the real installer.
@ -421,7 +424,7 @@ Function GetCampaignName
Pop $0 ; Discard Path
Pop $0 ; Recover filename
; Parse campaign out of the filename
${RECaptureMatches} $0 "HighFidelity-([^-]*-)Beta-.*" $0 0
${RECaptureMatches} $0 "ProjectAthena-([^-]*-)Alpha-.*" $0 0
${If} $0 == 1
Pop $0 ; Recover campaign name
StrCpy $0 $0 -1 0 ; Remove trailing - and copy to _RetVar
@ -528,7 +531,7 @@ Var GAClientID
Page custom PostInstallOptionsPage ReadPostInstallOptions
!define MUI_PAGE_CUSTOMFUNCTION_PRE PageInstallFilesPre
!define MUI_PAGE_CUSTOMFUNCTION_SHOW StartInstallSlideshow
; !define MUI_PAGE_CUSTOMFUNCTION_SHOW StartInstallSlideshow
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
@ -652,35 +655,35 @@ Var Express
Function OnUserAbort
!insertmacro LogStep "Installer" "Abort" "User Abort" ""
!insertmacro GoogleAnalytics "Installer" "Abort" "User Abort" ""
; !insertmacro GoogleAnalytics "Installer" "Abort" "User Abort" ""
FunctionEnd
Function PageWelcomePre
!insertmacro LogStep "Installer" "Welcome" "" ""
!insertmacro GoogleAnalytics "Installer" "Welcome" "" ""
!insertmacro DownloadSlideshowImages
; !insertmacro GoogleAnalytics "Installer" "Welcome" "" ""
; !insertmacro DownloadSlideshowImages
FunctionEnd
Function PageLicensePre
!insertmacro LogStep "Installer" "License" "" ""
!insertmacro GoogleAnalytics "Installer" "License" "" ""
; !insertmacro GoogleAnalytics "Installer" "License" "" ""
FunctionEnd
Function PageDirectoryPre
!insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "Directory" "" ""
!insertmacro GoogleAnalytics "Installer" "Directory" "" ""
; !insertmacro GoogleAnalytics "Installer" "Directory" "" ""
FunctionEnd
Function PageStartMenuPre
!insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "StartMenu" "" ""
!insertmacro GoogleAnalytics "Installer" "StartMenu" "" ""
; !insertmacro GoogleAnalytics "Installer" "StartMenu" "" ""
FunctionEnd
Function PageComponentsPre
!insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "Components" "" ""
!insertmacro GoogleAnalytics "Installer" "Components" "" ""
; !insertmacro GoogleAnalytics "Installer" "Components" "" ""
FunctionEnd
Function PageInstallFilesPre
!insertmacro LogStep "Installer" "Install" "" ""
!insertmacro GoogleAnalytics "Installer" "Install" "" ""
; !insertmacro GoogleAnalytics "Installer" "Install" "" ""
FunctionEnd
!macro SetInstallOption Checkbox OptionName Default
@ -702,7 +705,7 @@ FunctionEnd
Function InstallTypesPage
!insertmacro LogStep "Installer" "Install Types" "" ""
!insertmacro GoogleAnalytics "Installer" "Install Types" "" ""
; !insertmacro GoogleAnalytics "Installer" "Install Types" "" ""
!insertmacro MUI_HEADER_TEXT "Choose Installation Type" "Express or Custom Install"
@ -717,7 +720,7 @@ Function InstallTypesPage
StrCpy $OffsetUnits u
StrCpy $Express "0"
${NSD_CreateRadioButton} 30% $CurrentOffset$OffsetUnits 100% 10u "Express Install (Recommended)"; $\nInstalls High Fidelity Interface and High Fidelity Sandbox"
${NSD_CreateRadioButton} 30% $CurrentOffset$OffsetUnits 100% 10u "Express Install (Recommended)"; $\nInstalls Project Athena Interface and Project Athena Sandbox"
pop $ExpressInstallRadioButton
${NSD_OnClick} $ExpressInstallRadioButton ChangeExpressLabel
IntOp $CurrentOffset $CurrentOffset + 15
@ -813,7 +816,7 @@ Function PostInstallOptionsPage
!insertmacro MaybeSkipPage
!insertmacro LogStep "Installer" "Post Install Options" "" ""
!insertmacro GoogleAnalytics "Installer" "Post Install Options" "" ""
; !insertmacro GoogleAnalytics "Installer" "Post Install Options" "" ""
!insertmacro MUI_HEADER_TEXT "Setup Options" ""
@ -970,7 +973,7 @@ Function ReadPostInstallOptions
${If} @CLIENT_COMPONENT_CONDITIONAL@
${LogText} "Option: Install Client"
; check if the user asked for a desktop shortcut to High Fidelity
; check if the user asked for a desktop shortcut to Project Athena
${NSD_GetState} $DesktopClientCheckbox $DesktopClientState
${LogText} "Option: Create Client Desktop Shortcut: $DesktopClientState"
${EndIf}
@ -1024,7 +1027,7 @@ Function HandlePostInstallOptions
${EndIf}
${If} @CLIENT_COMPONENT_CONDITIONAL@
; check if the user asked for a desktop shortcut to High Fidelity
; check if the user asked for a desktop shortcut to Project Athena
${If} $DesktopClientState == ${BST_CHECKED}
CreateShortCut "$DESKTOP\@INTERFACE_HF_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@"
!insertmacro WriteInstallOption "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" YES
@ -1085,7 +1088,7 @@ Function HandlePostInstallOptions
ClearErrors
; copy the data from production build to this PR build
CopyFiles "$APPDATA\High Fidelity\*" $0
CopyFiles "$APPDATA\Project Athena\*" $0
; handle an error in copying files
IfErrors 0 NoError
@ -1325,13 +1328,13 @@ Section "-Core installation"
@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
; see if we have a campaign that we might need to grab special content for
Call OptionallyDownloadCampaignServerless
; Call OptionallyDownloadCampaignServerless
; Handle whichever post install options were set
Call HandlePostInstallOptions
!insertmacro LogStep "Installer" "Done" "" ""
!insertmacro GoogleAnalytics "Installer" "Done" "" ""
; !insertmacro GoogleAnalytics "Installer" "Done" "" ""
SectionEnd
!include nsProcess.nsh
@ -1358,7 +1361,7 @@ SectionEnd
/SD IDCANCEL IDRETRY Prompt_${UniqueID} IDCANCEL 0
${EndIf}
!insertmacro GoogleAnalytics "Installer" "Abort" "${displayName} Running" ""
; !insertmacro GoogleAnalytics "Installer" "Abort" "${displayName} Running" ""
; If the user decided to cancel, stop the current installer/uninstaller
Abort
@ -1602,7 +1605,7 @@ Function .onInit
!insertmacro InitGAClientID
!insertmacro GetCampaignName $CampaignName
!insertmacro GoogleAnalytics "Installer" "Start" "$CampaignName" ""
; !insertmacro GoogleAnalytics "Installer" "Start" "$CampaignName" ""
; make sure none of the installed applications are still running
${LogText} "Checking For Running Applications"

File diff suppressed because it is too large Load diff

View file

@ -112,10 +112,15 @@ function connectWebSocket(timeout) {
console.log('disconnected');
timeout = timeout | 0;
if (!shutdownBool && timeout < (30 * 1000)) {
if (!shutdownBool) {
if (timeout > (30 * 1000)) {
timeout = 30 * 1000;
} else if (timeout < (30 * 1000)) {
timeout += 1000;
}
Script.setTimeout(function () {
connectWebSocket(timeout);
}, timeout + 1000);
}, timeout);
} else {
wsReady = -1;
}
@ -128,13 +133,18 @@ function sendWS(msg, timeout) {
ws.send(JSON.stringify(msg));
} else {
timeout = timeout | 0;
if (!shutdownBool && timeout < (30 * 1000)) {
if (!shutdownBool) {
if (timeout > (30 * 1000)) {
timeout = 30 * 1000;
} else if (timeout < (30 * 1000)) {
timeout += 1000;
}
Script.setTimeout(function () {
if (wsReady === -1) {
connectWebSocket();
}
sendWS(msg, timeout);
}, timeout + 1000);
}, timeout);
}
}
}
@ -181,7 +191,7 @@ function go2(msg) {
var dest = false;
var domainsList = [];
try {
domainsList = Script.require("http://metaverse.darlingvr.club:8081/goto.json");
domainsList = Script.require(gotoJSONUrl + "?" + Date.now());
} catch (e) {
//
}