From a032ac66b191f32b288e3a67d857e9aac8473482 Mon Sep 17 00:00:00 2001 From: Kalila L Date: Sat, 22 Aug 2020 20:03:57 -0400 Subject: [PATCH 1/8] Update AddressManager links to NetworkingConstants. --- libraries/networking/src/AddressManager.cpp | 9 +++++---- libraries/networking/src/AddressManager.h | 4 ++-- libraries/networking/src/NetworkingConstants.h | 5 ++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index 5f08f19d2b..a46b779546 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -27,16 +27,17 @@ #include "NodeList.h" #include "NetworkLogging.h" +#include "NetworkingConstants.h" #include "UserActivityLogger.h" #include "udt/PacketHeaders.h" -const QString DEFAULT_HIFI_ADDRESS = "file:///~/serverless/tutorial.json"; -const QString DEFAULT_HOME_ADDRESS = "file:///~/serverless/tutorial.json"; -const QString REDIRECT_HIFI_ADDRESS = "file:///~/serverless/redirect.json"; +const QString DEFAULT_VIRCADIA_ADDRESS = NetworkingConstants::DEFAULT_VIRCADIA_ADDRESS; +const QString DEFAULT_HOME_ADDRESS = NetworkingConstants::DEFAULT_HOME_ADDRESS; +const QString REDIRECT_HIFI_ADDRESS = NetworkingConstants::REDIRECT_HIFI_ADDRESS; const QString ADDRESS_MANAGER_SETTINGS_GROUP = "AddressManager"; const QString SETTINGS_CURRENT_ADDRESS_KEY = "address"; -Setting::Handle currentAddressHandle(QStringList() << ADDRESS_MANAGER_SETTINGS_GROUP << "address", DEFAULT_HIFI_ADDRESS); +Setting::Handle currentAddressHandle(QStringList() << ADDRESS_MANAGER_SETTINGS_GROUP << "address", DEFAULT_VIRCADIA_ADDRESS); bool AddressManager::isConnected() { return DependencyManager::get()->getDomainHandler().isConnected(); diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index 148c4f8580..fd173bfa9a 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -22,7 +22,7 @@ #include "AccountManager.h" -extern const QString DEFAULT_HIFI_ADDRESS; +extern const QString DEFAULT_VIRCADIA_ADDRESS; extern const QString REDIRECT_HIFI_ADDRESS; extern const QString DEFAULT_HOME_ADDRESS; @@ -300,7 +300,7 @@ public slots: * @param {location.LookupTrigger} trigger=StartupFromSettings - The reason for the function call. Helps ensure that user's * location history is correctly maintained. */ - void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings) { handleUrl(DEFAULT_HIFI_ADDRESS, trigger); } + void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings) { handleUrl(DEFAULT_VIRCADIA_ADDRESS, trigger); } /**jsdoc * Takes you to the specified user's location. diff --git a/libraries/networking/src/NetworkingConstants.h b/libraries/networking/src/NetworkingConstants.h index edc1c1a1ef..c20753f8b7 100644 --- a/libraries/networking/src/NetworkingConstants.h +++ b/libraries/networking/src/NetworkingConstants.h @@ -56,7 +56,10 @@ namespace NetworkingConstants { const QUrl HELP_SCRIPTING_REFERENCE_URL{ "https://apidocs.vircadia.dev/" }; const QUrl HELP_RELEASE_NOTES_URL{ "https://docs.vircadia.dev/release-notes.html" }; const QUrl HELP_BUG_REPORT_URL{ "https://github.com/kasenvr/project-athena/issues" }; - + + const QString DEFAULT_VIRCADIA_ADDRESS = "file:///~/serverless/tutorial.json"; + const QString DEFAULT_HOME_ADDRESS = "file:///~/serverless/tutorial.json"; + const QString REDIRECT_HIFI_ADDRESS = "file:///~/serverless/redirect.json"; } const QString HIFI_URL_SCHEME_ABOUT = "about"; From a2bd06993fe7013918fc5d25e39b1af8c9c8d54e Mon Sep 17 00:00:00 2001 From: Kalila L Date: Sun, 23 Aug 2020 01:49:32 -0400 Subject: [PATCH 2/8] Add option to build an Interface to go to specified address by default. --- cmake/macros/SetPackagingParameters.cmake | 1 + cmake/templates/BuildInfo.h.in | 3 ++- interface/src/Application.cpp | 5 +++++ interface/src/Menu.cpp | 20 ++++++++++++++------ libraries/networking/src/AddressManager.cpp | 9 +++++++-- libraries/networking/src/AddressManager.h | 9 ++++++--- 6 files changed, 35 insertions(+), 12 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 1b7b3dbe8e..0f47a2fcb3 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -23,6 +23,7 @@ macro(SET_PACKAGING_PARAMETERS) set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV") set_from_env(RELEASE_NUMBER RELEASE_NUMBER "") set_from_env(STABLE_BUILD STABLE_BUILD 0) + set_from_env(INITIAL_STARTUP_LOCATION INITIAL_STARTUP_LOCATION "") message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}") diff --git a/cmake/templates/BuildInfo.h.in b/cmake/templates/BuildInfo.h.in index 9fc9d9be81..02f6a50919 100644 --- a/cmake/templates/BuildInfo.h.in +++ b/cmake/templates/BuildInfo.h.in @@ -22,11 +22,12 @@ namespace BuildInfo { const QString DOMAIN_SERVER_NAME = "domain-server"; const QString AC_CLIENT_SERVER_NAME = "ac-client"; const QString MODIFIED_ORGANIZATION = "@BUILD_ORGANIZATION@"; - const QString ORGANIZATION_DOMAIN = "highfidelity.io"; + const QString ORGANIZATION_DOMAIN = "vircadia.com"; const QString VERSION = "@BUILD_VERSION@"; const QString BUILD_NUMBER = "@BUILD_NUMBER@"; const QString BUILD_GLOBAL_SERVICES = "@BUILD_GLOBAL_SERVICES@"; const QString BUILD_TIME = "@BUILD_TIME@"; + const QString INITIAL_STARTUP_LOCATION = "@INITIAL_STARTUP_LOCATION@"; enum BuildType { Dev, diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index cc2aed7f53..281a2da6e4 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3974,6 +3974,11 @@ void Application::handleSandboxStatus(QNetworkReply* reply) { // If this is a first run we short-circuit the address passed in if (_firstRun.get()) { + if (!BuildInfo::INITIAL_STARTUP_LOCATION.isEmpty()) { + DependencyManager::get()->setHomeLocationToAddress(NetworkingConstants::DEFAULT_VIRCADIA_ADDRESS); + Menu::getInstance()->triggerOption(MenuOption::HomeLocation); + } + if (!_overrideEntry) { DependencyManager::get()->goToEntry(); sentTo = SENT_TO_ENTRY; diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 64cdf98239..9781470ed4 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -232,12 +233,19 @@ Menu::Menu() { // Navigate > Start-up Location MenuWrapper* startupLocationMenu = navigateMenu->addMenu(MenuOption::StartUpLocation); - QActionGroup* startupLocatiopnGroup = new QActionGroup(startupLocationMenu); - startupLocatiopnGroup->setExclusive(true); - startupLocatiopnGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::HomeLocation, 0, - false)); - startupLocatiopnGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::LastLocation, 0, - true)); + QActionGroup* startupLocationGroup = new QActionGroup(startupLocationMenu); + startupLocationGroup->setExclusive(true); + if (!BuildInfo::INITIAL_STARTUP_LOCATION.isEmpty()) { + startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::HomeLocation, 0, + true)); + startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::LastLocation, 0, + false)); + } else { + startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::HomeLocation, 0, + false)); + startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::LastLocation, 0, + true)); + } // Settings menu ---------------------------------- MenuWrapper* settingsMenu = addMenu("Settings"); diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index a46b779546..94bcb718d3 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -31,12 +31,17 @@ #include "UserActivityLogger.h" #include "udt/PacketHeaders.h" -const QString DEFAULT_VIRCADIA_ADDRESS = NetworkingConstants::DEFAULT_VIRCADIA_ADDRESS; -const QString DEFAULT_HOME_ADDRESS = NetworkingConstants::DEFAULT_HOME_ADDRESS; const QString REDIRECT_HIFI_ADDRESS = NetworkingConstants::REDIRECT_HIFI_ADDRESS; const QString ADDRESS_MANAGER_SETTINGS_GROUP = "AddressManager"; const QString SETTINGS_CURRENT_ADDRESS_KEY = "address"; +const QString DEFAULT_VIRCADIA_ADDRESS = (!BuildInfo::INITIAL_STARTUP_LOCATION.isEmpty()) + ? BuildInfo::INITIAL_STARTUP_LOCATION + : NetworkingConstants::DEFAULT_VIRCADIA_ADDRESS; +const QString DEFAULT_HOME_ADDRESS = (!BuildInfo::INITIAL_STARTUP_LOCATION.isEmpty()) + ? BuildInfo::INITIAL_STARTUP_LOCATION + : NetworkingConstants::DEFAULT_VIRCADIA_ADDRESS; + Setting::Handle currentAddressHandle(QStringList() << ADDRESS_MANAGER_SETTINGS_GROUP << "address", DEFAULT_VIRCADIA_ADDRESS); bool AddressManager::isConnected() { diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index fd173bfa9a..daca6d3392 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -22,8 +22,8 @@ #include "AccountManager.h" -extern const QString DEFAULT_VIRCADIA_ADDRESS; extern const QString REDIRECT_HIFI_ADDRESS; +extern const QString DEFAULT_VIRCADIA_ADDRESS; extern const QString DEFAULT_HOME_ADDRESS; const QString SANDBOX_HIFI_ADDRESS = "hifi://localhost"; @@ -292,7 +292,8 @@ public slots: * location history is correctly maintained. */ void goToLocalSandbox(QString path = "", LookupTrigger trigger = LookupTrigger::StartupFromSettings) { - handleUrl(SANDBOX_HIFI_ADDRESS + path, trigger); } + handleUrl(SANDBOX_HIFI_ADDRESS + path, trigger); + } /**jsdoc * Takes you to the default "welcome" metaverse address. @@ -300,7 +301,9 @@ public slots: * @param {location.LookupTrigger} trigger=StartupFromSettings - The reason for the function call. Helps ensure that user's * location history is correctly maintained. */ - void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings) { handleUrl(DEFAULT_VIRCADIA_ADDRESS, trigger); } + void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings) { + handleUrl(DEFAULT_VIRCADIA_ADDRESS, trigger); + } /**jsdoc * Takes you to the specified user's location. From feac9683c42359e7f805f18227ebe0866b2ea99c Mon Sep 17 00:00:00 2001 From: Kalila L Date: Sun, 23 Aug 2020 01:52:53 -0400 Subject: [PATCH 3/8] Remove unneeded if checks for INITIAL_STARTUP_LOCATION assignment. --- interface/src/Menu.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 9781470ed4..491d4442a6 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -23,7 +23,6 @@ #include #include -#include #include #include #include @@ -235,17 +234,10 @@ Menu::Menu() { MenuWrapper* startupLocationMenu = navigateMenu->addMenu(MenuOption::StartUpLocation); QActionGroup* startupLocationGroup = new QActionGroup(startupLocationMenu); startupLocationGroup->setExclusive(true); - if (!BuildInfo::INITIAL_STARTUP_LOCATION.isEmpty()) { - startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::HomeLocation, 0, - true)); - startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::LastLocation, 0, - false)); - } else { - startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::HomeLocation, 0, - false)); - startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::LastLocation, 0, - true)); - } + startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::HomeLocation, 0, + false)); + startupLocationGroup->addAction(addCheckableActionToQMenuAndActionHash(startupLocationMenu, MenuOption::LastLocation, 0, + true)); // Settings menu ---------------------------------- MenuWrapper* settingsMenu = addMenu("Settings"); From b9a25905e2d931a545182ec465dd6ecfb9ad2293 Mon Sep 17 00:00:00 2001 From: Kalila L Date: Sun, 23 Aug 2020 14:49:21 -0400 Subject: [PATCH 4/8] Update build docs. --- BUILD.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/BUILD.md b/BUILD.md index db81ecb30d..a1cbc5bcd6 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,6 +1,6 @@ # General Build Information -*Last Updated on June 27, 2020* +*Last Updated on August 23, 2020* ### OS Specific Build Guides @@ -80,6 +80,9 @@ Where /path/to/directory is the path to a directory where you wish the build fil // The type of release. RELEASE_TYPE=PRODUCTION|PR|DEV + // The Interface will have a custom default home and startup location. + INITIAL_STARTUP_LOCATION=Location/IP/URL + // TODO: What do these do? PRODUCTION_BUILD=0|1 PR_BUILD=0|1 From be46e3d8f2daee75865b7c60ff265808c9a70be5 Mon Sep 17 00:00:00 2001 From: Kalila L Date: Mon, 24 Aug 2020 15:23:13 -0400 Subject: [PATCH 5/8] Code signing variables updated. --- BUILD.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BUILD.md b/BUILD.md index a1cbc5bcd6..c79dfc18f9 100644 --- a/BUILD.md +++ b/BUILD.md @@ -1,6 +1,6 @@ # General Build Information -*Last Updated on August 23, 2020* +*Last Updated on August 24, 2020* ### OS Specific Build Guides @@ -83,6 +83,10 @@ Where /path/to/directory is the path to a directory where you wish the build fil // The Interface will have a custom default home and startup location. INITIAL_STARTUP_LOCATION=Location/IP/URL + // Code-signing environment variables must be set at runtime AND globally when the signing takes place. + HF_PFX_FILE=Path to certificate + HF_PFX_PASSPHRASE=Passphrase for certificate + // TODO: What do these do? PRODUCTION_BUILD=0|1 PR_BUILD=0|1 From d41cb0a5cda2b0bcdd1fc59af97d5d11f11fe4d9 Mon Sep 17 00:00:00 2001 From: Kalila L Date: Mon, 24 Aug 2020 15:27:56 -0400 Subject: [PATCH 6/8] Update Install.md instructions for code signing. --- INSTALL.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index af398ee6b3..4307ddc79e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,5 +1,7 @@ # Creating an Installer +*Last Updated on August 24, 2020* + Follow the [build guide](BUILD.md) to figure out how to build Vircadia for your platform. During generation, CMake should produce an `install` target and a `package` target. @@ -13,6 +15,8 @@ To produce an installer, run the `package` target. However you will want to foll #### Windows +##### Prerequisites + To produce an executable installer on Windows, the following are required: 1. [7-zip]() @@ -59,6 +63,12 @@ To produce an executable installer on Windows, the following are required: 1. [Node.JS and NPM]() 1. Install version 10.15.0 LTS +##### Code Signing (optional) + +For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PASSPHRASE` environment variables globally. + +##### Creating the Installer + 1. Perform a clean cmake from a new terminal. 1. Open the `vircadia.sln` solution with elevated (administrator) permissions on Visual Studio and select the **Release** configuration. 1. Build the solution. From 8705873be56907df28f030774ffb089d784966bd Mon Sep 17 00:00:00 2001 From: kasenvr <52365539+kasenvr@users.noreply.github.com> Date: Thu, 10 Sep 2020 04:15:07 -0400 Subject: [PATCH 7/8] Update BUILD.md --- BUILD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD.md b/BUILD.md index 61bc1cdd04..2d94d1b5b1 100644 --- a/BUILD.md +++ b/BUILD.md @@ -83,7 +83,7 @@ Where /path/to/directory is the path to a directory where you wish the build fil // The Interface will have a custom default home and startup location. INITIAL_STARTUP_LOCATION=Location/IP/URL - // Code-signing environment variables must be set at runtime AND globally when the signing takes place. + // Code-signing environment variables must be set during runtime of CMake AND globally when the signing takes place. HF_PFX_FILE=Path to certificate HF_PFX_PASSPHRASE=Passphrase for certificate From 8943032df8eb35b32ca240e71c4959dd9d86418f Mon Sep 17 00:00:00 2001 From: kasenvr <52365539+kasenvr@users.noreply.github.com> Date: Thu, 10 Sep 2020 04:16:03 -0400 Subject: [PATCH 8/8] Update INSTALL.md --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 4307ddc79e..994725ac28 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -65,7 +65,7 @@ To produce an executable installer on Windows, the following are required: ##### Code Signing (optional) -For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PASSPHRASE` environment variables globally. +For code signing to work, you will need to set the `HF_PFX_FILE` and `HF_PFX_PASSPHRASE` environment variables to be present during CMake runtime and globally as we proceed to package the installer. ##### Creating the Installer