From 7689647d782b253ea2db6796997e55582e8c5492 Mon Sep 17 00:00:00 2001 From: armored-dragon Date: Wed, 30 Oct 2024 05:09:22 -0500 Subject: [PATCH 01/13] Add .cache to gitignore. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 90ff187027..6c35659bf3 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ local.properties !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json +.cache # Workspace *.code-workspace From 05a1fa422633cad4d79b422ef93b3336394bd820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Sun, 15 Dec 2024 11:42:24 +0100 Subject: [PATCH 02/13] Update Qt package and enable QtX11Extras. --- hifi_qt.py | 2 +- tools/qt-builder/Dockerfile_Ubuntu_20.04_Qt5 | 22 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/hifi_qt.py b/hifi_qt.py index b4ab5e9b3c..053ff997b7 100644 --- a/hifi_qt.py +++ b/hifi_qt.py @@ -157,7 +157,7 @@ def __init__(self, args): u_major = int( distro.major_version() or '0' ) if distro.id() == 'ubuntu' or distro.id() == 'linuxmint': if (distro.id() == 'ubuntu' and u_major == 20) or distro.id() == 'linuxmint' and u_major == 20: - self.qtUrl = self.assets_url + '/dependencies/qt5/qt5-install-5.15.14-2024.06.17-kde_570f5b2105df1ea052bec0d6dbf8a00137274371-ubuntu-20.04-amd64.tar.xz' + self.qtUrl = self.assets_url + '/dependencies/qt5/qt5-install-5.15.16-2024.12.14-kde_32be154325bfba3ad2ba8bf75dad702f3588e8d3-ubuntu-20.04-amd64.tar.xz' elif (distro.id() == 'ubuntu' and u_major > 20) or (distro.id() == 'linuxmint' and u_major > 20): self.__no_qt_package_error() else: diff --git a/tools/qt-builder/Dockerfile_Ubuntu_20.04_Qt5 b/tools/qt-builder/Dockerfile_Ubuntu_20.04_Qt5 index 8c7e32f360..5639d662b6 100644 --- a/tools/qt-builder/Dockerfile_Ubuntu_20.04_Qt5 +++ b/tools/qt-builder/Dockerfile_Ubuntu_20.04_Qt5 @@ -4,11 +4,11 @@ # - Check which commit you are building https://invent.kde.org/qt/qt/qt5/-/tree/kde/5.15 # - Adjust this file to include the commit hash you are building, the date, the number of threads you want to use (-j10), the platform, and the Qt and QtWebEngine versions. # Keep in mind that building Qt requires a lot of memory. You should have over 1.2GiB of system memory available per thread. -# - Run the build process with something like `PROGRESS_NO_TRUNC=1 DOCKER_BUILDKIT=1 BUILDKIT_STEP_LOG_MAX_SIZE=-1 docker build --progress plain -t overte-qt5:5.15.14-2024.06.17-kde_570f5b2105df1ea052bec0d6dbf8a00137274371 -f Dockerfile_Ubuntu_20.04_Qt5 .` +# - Run the build process with something like `PROGRESS_NO_TRUNC=1 DOCKER_BUILDKIT=1 BUILDKIT_STEP_LOG_MAX_SIZE=-1 docker build --progress plain -t overte-qt5:5.15.16-2024.12.14-kde_32be154325bfba3ad2ba8bf75dad702f3588e8d3 -f Dockerfile_Ubuntu_20.04_Qt5 .` # Buildkit is used to cache intermittent steps in case you need to modify something afterwards. # - Once the build has completed, create a container from the image and export the created Qt package. -# `docker create --name extract overte-qt5:5.15.14-2024.06.17-kde_570f5b2105df1ea052bec0d6dbf8a00137274371` -# `docker cp extract:qt5-install-5.15.14-2024.06.17-kde_570f5b2105df1ea052bec0d6dbf8a00137274371-ubuntu-20.04-amd64.tar.xz /path/on/host` +# `docker create --name extract overte-qt5:5.15.16-2024.12.14-kde_32be154325bfba3ad2ba8bf75dad702f3588e8d3` +# `docker cp extract:qt5-install-5.15.16-2024.12.14-kde_32be154325bfba3ad2ba8bf75dad702f3588e8d3-ubuntu-20.04-amd64.tar.xz /path/on/host` # `docker rm extract` FROM ubuntu:20.04 @@ -47,7 +47,7 @@ RUN apt-get -y install git python gperf flex bison pkg-config mesa-utils libgl1- RUN mkdir qt5-install && mkdir qt5-build WORKDIR qt5-build -RUN ../qt5/configure -force-debug-info -release -opensource -confirm-license -platform linux-g++ -recheck-all -nomake tests -nomake examples -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtcharts -skip qtx11extras -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -skip qtlottie -skip qtquick3d -skip qtpim -skip qtdocgallery -no-warnings-are-errors -no-pch -no-icu -prefix ../qt5-install +RUN ../qt5/configure -force-debug-info -release -opensource -confirm-license -platform linux-g++ -recheck-all -nomake tests -nomake examples -skip qttranslations -skip qtserialport -skip qt3d -skip qtlocation -skip qtwayland -skip qtsensors -skip qtgamepad -skip qtcharts -skip qtmacextras -skip qtvirtualkeyboard -skip qtpurchasing -skip qtdatavis3d -skip qtlottie -skip qtquick3d -skip qtpim -skip qtdocgallery -no-warnings-are-errors -no-pch -no-icu -prefix ../qt5-install RUN NINJAFLAGS='-j6' make -j6 @@ -58,12 +58,12 @@ WORKDIR ../../qt5-install RUN find . -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; # Overwrite QtWebengine version to work around version conflicts -RUN find . -name \Qt5WebEngine*Config.cmake -exec sed -i '' -e 's/5\.15\.17/5\.15\.14/g' {} \; -RUN cp lib/libQt5WebEngine.so.5.15.17 lib/libQt5WebEngine.so.5.15.14 -RUN cp lib/libQt5WebEngineCore.so.5.15.17 lib/libQt5WebEngineCore.so.5.15.14 -RUN cp lib/libQt5WebEngineWidgets.so.5.15.17 lib/libQt5WebEngineWidgets.so.5.15.14 -RUN cp lib/libQt5Pdf.so.5.15.17 lib/libQt5Pdf.so.5.15.14 -RUN cp lib/libQt5PdfWidgets.so.5.15.17 lib/libQt5PdfWidgets.so.5.15.14 +RUN find . -name \Qt5WebEngine*Config.cmake -exec sed -i '' -e 's/5\.15\.19/5\.15\.16/g' {} \; +RUN cp lib/libQt5WebEngine.so.5.15.19 lib/libQt5WebEngine.so.5.15.16 +RUN cp lib/libQt5WebEngineCore.so.5.15.19 lib/libQt5WebEngineCore.so.5.15.16 +RUN cp lib/libQt5WebEngineWidgets.so.5.15.19 lib/libQt5WebEngineWidgets.so.5.15.16 +RUN cp lib/libQt5Pdf.so.5.15.19 lib/libQt5Pdf.so.5.15.16 +RUN cp lib/libQt5PdfWidgets.so.5.15.19 lib/libQt5PdfWidgets.so.5.15.16 COPY ./qt.conf ./bin/ @@ -71,4 +71,4 @@ COPY ./qt.conf ./bin/ RUN cp ../qt5-build/config.summary ./ WORKDIR .. -RUN XZ_OPT='-T0' tar -Jcvf qt5-install-5.15.14-2024.06.17-kde_570f5b2105df1ea052bec0d6dbf8a00137274371-ubuntu-20.04-amd64.tar.xz qt5-install +RUN XZ_OPT='-T0' tar -Jcvf qt5-install-5.15.16-2024.12.14-kde_32be154325bfba3ad2ba8bf75dad702f3588e8d3-ubuntu-20.04-amd64.tar.xz qt5-install From d06f8bcb2697eb9488d40de148998522ef2faf8c Mon Sep 17 00:00:00 2001 From: ksuprynowicz Date: Thu, 19 Dec 2024 22:30:45 +0100 Subject: [PATCH 03/13] Add a setting to hide the Graphics icon --- interface/src/Application.cpp | 7 +++++++ interface/src/Application.h | 4 ++++ interface/src/ui/PreferencesDialog.cpp | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 64aba5ce7e..db8a5dc0cf 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -969,6 +969,7 @@ const bool DEFAULT_DESKTOP_TABLET_BECOMES_TOOLBAR = true; const bool DEFAULT_HMD_TABLET_BECOMES_TOOLBAR = false; const bool DEFAULT_PREFER_STYLUS_OVER_LASER = false; const bool DEFAULT_PREFER_AVATAR_FINGER_OVER_STYLUS = false; +const bool DEFAULT_SHOW_GRAPHICS_ICON = true; const QString DEFAULT_CURSOR_NAME = "SYSTEM"; const bool DEFAULT_MINI_TABLET_ENABLED = false; const bool DEFAULT_AWAY_STATE_WHEN_FOCUS_LOST_IN_VR_ENABLED = true; @@ -1010,6 +1011,7 @@ Application::Application( _hmdTabletBecomesToolbarSetting("hmdTabletBecomesToolbar", DEFAULT_HMD_TABLET_BECOMES_TOOLBAR), _preferStylusOverLaserSetting("preferStylusOverLaser", DEFAULT_PREFER_STYLUS_OVER_LASER), _preferAvatarFingerOverStylusSetting("preferAvatarFingerOverStylus", DEFAULT_PREFER_AVATAR_FINGER_OVER_STYLUS), + _showGraphicsIconSetting("showGraphicsIcon", DEFAULT_SHOW_GRAPHICS_ICON), _constrainToolbarPosition("toolbar/constrainToolbarToCenterX", true), _awayStateWhenFocusLostInVREnabled("awayStateWhenFocusLostInVREnabled", DEFAULT_AWAY_STATE_WHEN_FOCUS_LOST_IN_VR_ENABLED), _preferredCursor("preferredCursor", DEFAULT_CURSOR_NAME), @@ -3841,6 +3843,11 @@ void Application::setPreferAvatarFingerOverStylus(bool value) { _preferAvatarFingerOverStylusSetting.set(value); } +void Application::setShowGraphicsIcon(bool value) { + _showGraphicsIconSetting.set(value); + DependencyManager::get< MessagesClient >()->sendLocalMessage("Overte-ShowGraphicsIconChanged", ""); +} + void Application::setPreferredCursor(const QString& cursorName) { qCDebug(interfaceapp) << "setPreferredCursor" << cursorName; diff --git a/interface/src/Application.h b/interface/src/Application.h index f3cbd351eb..ec575b384d 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -263,6 +263,9 @@ class Application : public QApplication, bool getPreferAvatarFingerOverStylus() { return _preferAvatarFingerOverStylusSetting.get(); } void setPreferAvatarFingerOverStylus(bool value); + bool getShowGraphicsIcon() { return _showGraphicsIconSetting.get(); } + void setShowGraphicsIcon(bool value); + bool getMiniTabletEnabled() { return _miniTabletEnabledSetting.get(); } void setMiniTabletEnabled(bool enabled); @@ -723,6 +726,7 @@ private slots: Setting::Handle _hmdTabletBecomesToolbarSetting; Setting::Handle _preferStylusOverLaserSetting; Setting::Handle _preferAvatarFingerOverStylusSetting; + Setting::Handle _showGraphicsIconSetting; Setting::Handle _constrainToolbarPosition; Setting::Handle _awayStateWhenFocusLostInVREnabled; Setting::Handle _preferredCursor; diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp index 65e4daa5e0..4c87f12998 100644 --- a/interface/src/ui/PreferencesDialog.cpp +++ b/interface/src/ui/PreferencesDialog.cpp @@ -225,6 +225,12 @@ void setupPreferences() { preferences->addPreference(delaySlider); } + { + auto getter = []() -> bool { return qApp->getShowGraphicsIcon(); }; + auto setter = [](bool value) { qApp->setShowGraphicsIcon(value); }; + preferences->addPreference(new CheckPreference(UI_CATEGORY, "Show Graphics icon on tablet and toolbar", getter, setter)); + } + static const QString VIEW_CATEGORY{ "View" }; { auto getter = [myAvatar]()->float { return myAvatar->getRealWorldFieldOfView(); }; From 3883de26bad26ef326a935a0d290a85d8fe59f20 Mon Sep 17 00:00:00 2001 From: Alezia Kurdis <60075796+AleziaKurdis@users.noreply.github.com> Date: Thu, 19 Dec 2024 21:56:30 -0500 Subject: [PATCH 04/13] Add Hide & Show App from settings This make the tablet app to be launched or not based on new setting that control its present in the tablet/toolbar. It also make it able to discard or restore itself on the tablet/toolbar if the option is checked in the Setting menu. (See PR 1274 for the new setting) --- scripts/system/graphicsSettings.js | 54 ++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/scripts/system/graphicsSettings.js b/scripts/system/graphicsSettings.js index df556a91b1..748eafca24 100644 --- a/scripts/system/graphicsSettings.js +++ b/scripts/system/graphicsSettings.js @@ -1,15 +1,20 @@ // // graphicsSettings.js // -// Created by Kalila L. on 8/5/2020 +// Created by Kalila L. on August 5th, 2020 // Copyright 2020 Vircadia contributors. +// Copyright 2024 Overte e.V. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // (function() { // BEGIN LOCAL_SCOPE - + var channelComm = "Overte-ShowGraphicsIconChanged"; + var appStatus = false; + var GRAPHICS_HIDE_AND_SHOW_SETTING_KEY = "showGraphicsIcon"; + var GRAPHICS_HIDE_AND_SHOW_DEFAULT_VALUE = true; + var AppUi = Script.require('appUi'); // cellphone-cog MDI @@ -49,22 +54,49 @@ } function startup() { - ui = new AppUi({ - buttonName: BUTTON_NAME, - sortOrder: 8, - normalButton: getIcon(), - activeButton: getIcon().replace('white', 'black'), - home: GRAPHICS_QML_SOURCE - }); + if (!appStatus) { + ui = new AppUi({ + buttonName: BUTTON_NAME, + sortOrder: 8, + normalButton: getIcon(), + activeButton: getIcon().replace('white', 'black'), + home: GRAPHICS_QML_SOURCE + }); + } + appStatus = true; } function shutdown() { + if (appStatus) { + ui.onScriptEnding(); + appStatus = false; + } + } + + function cleanup() { + Messages.messageReceived.disconnect(onMessageReceived); + Messages.unsubscribe(channelComm); + } + + function onMessageReceived(channel, message, sender, localOnly) { + if (channel === channelComm && localOnly) { + if (Settings.getValue(GRAPHICS_HIDE_AND_SHOW_SETTING_KEY, GRAPHICS_HIDE_AND_SHOW_DEFAULT_VALUE)) { + startup(); + } else { + shutdown(); + } + } } // // Run the functions. // - startup(); - Script.scriptEnding.connect(shutdown); + if (Settings.getValue(GRAPHICS_HIDE_AND_SHOW_SETTING_KEY, GRAPHICS_HIDE_AND_SHOW_DEFAULT_VALUE)) { + startup(); + } + Messages.subscribe(channelComm); + Messages.messageReceived.connect(onMessageReceived); + + Script.scriptEnding.connect(cleanup); }()); // END LOCAL_SCOPE From b85935c0c461191247e569d4c6c803b6e0e7d9de Mon Sep 17 00:00:00 2001 From: Karol Suprynowicz Date: Fri, 20 Dec 2024 23:49:37 +0100 Subject: [PATCH 05/13] Add support for base64 images in image entity URLs --- .../src/material-networking/TextureCache.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libraries/material-networking/src/material-networking/TextureCache.cpp b/libraries/material-networking/src/material-networking/TextureCache.cpp index 840fa50a0a..51dd9fb2fc 100644 --- a/libraries/material-networking/src/material-networking/TextureCache.cpp +++ b/libraries/material-networking/src/material-networking/TextureCache.cpp @@ -254,6 +254,18 @@ NetworkTexturePointer TextureCache::getTexture(const QUrl& url, image::TextureUs if (url.scheme() == RESOURCE_SCHEME) { return getResourceTexture(url); } + + QString urlString = url.toString(); + if (content.isEmpty() && (urlString.contains("data:image/jpeg;base64,") + || urlString.contains("data:image/png;base64,") + || urlString.contains("data:image/webp;base64,"))) { + QString binaryUrl = urlString.split(",")[1]; + auto decodedContent = binaryUrl.isEmpty() ? QByteArray() : QByteArray::fromBase64(binaryUrl.toUtf8()); + if (!decodedContent.isEmpty()) { + return getTexture(url, type, decodedContent, maxNumPixels, sourceChannel); + } + } + QString decodedURL = QUrl::fromPercentEncoding(url.toEncoded()); if (decodedURL.startsWith("{")) { return getTextureByUUID(decodedURL); From d71264f555d62da573d4abae6186bdd1ef6ec779 Mon Sep 17 00:00:00 2001 From: Karol Suprynowicz Date: Sat, 21 Dec 2024 14:25:25 +0100 Subject: [PATCH 06/13] Fix checking URL for base64 images --- libraries/entities/src/EntityItemPropertiesDocs.cpp | 4 +++- .../src/material-networking/TextureCache.cpp | 6 +++--- libraries/model-serializers/src/GLTFSerializer.cpp | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/libraries/entities/src/EntityItemPropertiesDocs.cpp b/libraries/entities/src/EntityItemPropertiesDocs.cpp index 8f8959165c..8195161b77 100644 --- a/libraries/entities/src/EntityItemPropertiesDocs.cpp +++ b/libraries/entities/src/EntityItemPropertiesDocs.cpp @@ -935,7 +935,9 @@ * * @typedef {object} Entities.EntityProperties-Image * @property {Vec3} dimensions=0.1,0.1,0.01 - The dimensions of the entity. - * @property {string} imageURL="" - The URL of the image to use. + * @property {string} imageURL="" - The URL of the image to use. It can also contain a base64 encoded image, in the same format as glTF. + * For network transmitted entities there's about 1000-character limit for the length of this field. For base64 image + * the property string needs to begin with `data:image/png;base64,`, `data:image/jpeg;base64,` or `data:image/webp;base64,`. * @property {boolean} emissive=false - true if the image should be emissive (unlit), false if it * shouldn't. * @property {boolean} keepAspectRatio=true - true if the image should maintain its aspect ratio, diff --git a/libraries/material-networking/src/material-networking/TextureCache.cpp b/libraries/material-networking/src/material-networking/TextureCache.cpp index 51dd9fb2fc..e2d4822543 100644 --- a/libraries/material-networking/src/material-networking/TextureCache.cpp +++ b/libraries/material-networking/src/material-networking/TextureCache.cpp @@ -256,9 +256,9 @@ NetworkTexturePointer TextureCache::getTexture(const QUrl& url, image::TextureUs } QString urlString = url.toString(); - if (content.isEmpty() && (urlString.contains("data:image/jpeg;base64,") - || urlString.contains("data:image/png;base64,") - || urlString.contains("data:image/webp;base64,"))) { + if (content.isEmpty() && (urlString.startsWith("data:image/jpeg;base64,") + || urlString.startsWith("data:image/png;base64,") + || urlString.startsWith("data:image/webp;base64,"))) { QString binaryUrl = urlString.split(",")[1]; auto decodedContent = binaryUrl.isEmpty() ? QByteArray() : QByteArray::fromBase64(binaryUrl.toUtf8()); if (!decodedContent.isEmpty()) { diff --git a/libraries/model-serializers/src/GLTFSerializer.cpp b/libraries/model-serializers/src/GLTFSerializer.cpp index 1440fb22d2..d4cee367d3 100644 --- a/libraries/model-serializers/src/GLTFSerializer.cpp +++ b/libraries/model-serializers/src/GLTFSerializer.cpp @@ -1335,7 +1335,7 @@ HFMTexture GLTFSerializer::getHFMTexture(const cgltf_texture *texture) { hfmTex.filename = textureUrl.toEncoded().append(QString::number(imageIndex).toUtf8()); } - if (url.contains("data:image/jpeg;base64,") || url.contains("data:image/png;base64,") || url.contains("data:image/webp;base64,")) { + if (url.startsWith("data:image/jpeg;base64,") || url.startsWith("data:image/png;base64,") || url.startsWith("data:image/webp;base64,")) { hfmTex.content = requestEmbeddedData(url); } } From f7a47ea00dba1287543c054787f5cd04d2f2cae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 11:38:38 +0100 Subject: [PATCH 07/13] Fix master build `set-output` deprecation warnings. --- .github/workflows/master_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/master_build.yml b/.github/workflows/master_build.yml index 8754c08696..2704ea16d4 100644 --- a/.github/workflows/master_build.yml +++ b/.github/workflows/master_build.yml @@ -65,7 +65,7 @@ jobs: run: | echo "UPLOAD_PREFIX=build/overte/master" >> $GITHUB_ENV - echo ::set-output name=github_sha_short::`echo $GIT_COMMIT | cut -c1-7` + echo "{github_sha_short}={`echo $GIT_COMMIT | cut -c1-7`}" >> $GITHUB_OUTPUT echo "JOB_NAME=build (${{matrix.os}}, ${{matrix.build_type}})" >> $GITHUB_ENV echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV # Linux build variables @@ -82,7 +82,7 @@ jobs: echo "ZIP_ARGS=-r" >> $GITHUB_ENV echo "INSTALLER_EXT=dmg" >> $GITHUB_ENV echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -G Xcode" >> $GITHUB_ENV - echo "::set-output name=symbols_archive::${BUILD_NUMBER}-${{ matrix.build_type }}-mac-symbols.zip" + echo "symbols_archive=${BUILD_NUMBER}-${{ matrix.build_type }}-mac-symbols.zip" >> $GITHUB_ENV echo "APP_TARGET_NAME=Overte" >> $GITHUB_ENV fi # Windows build variables From 5a6da873031de4f2f92ef956110614d15dee4f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 11:40:10 +0100 Subject: [PATCH 08/13] Update FTP-Deploy. --- .github/workflows/master_deploy_apidocs.yml | 2 +- .github/workflows/master_deploy_doxygen.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/master_deploy_apidocs.yml b/.github/workflows/master_deploy_apidocs.yml index 79d4533b40..a4c501ac5a 100644 --- a/.github/workflows/master_deploy_apidocs.yml +++ b/.github/workflows/master_deploy_apidocs.yml @@ -31,7 +31,7 @@ jobs: jsdoc root.js -r api-mainpage.md -c config.json -d output - name: Deploy API-docs - uses: SamKirkland/FTP-Deploy-Action@v4.3.4 + uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: server: www531.your-server.de protocol: ftps diff --git a/.github/workflows/master_deploy_doxygen.yml b/.github/workflows/master_deploy_doxygen.yml index 9a12a165a8..d2caa15d18 100644 --- a/.github/workflows/master_deploy_doxygen.yml +++ b/.github/workflows/master_deploy_doxygen.yml @@ -29,7 +29,7 @@ jobs: doxygen Doxyfile - name: Deploy Doxygen - uses: SamKirkland/FTP-Deploy-Action@v4.3.4 + uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: server: www531.your-server.de protocol: ftps From a03733cee525d1609b8399e3f5e4fdd40372e15a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 11:51:49 +0100 Subject: [PATCH 09/13] Update CI Docker containers. --- .github/workflows/pr_build.yml | 6 +++--- tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-20.04 | 6 ++++-- tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-22.04 | 6 +++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index b1b8470bf0..0db1e73bf6 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -64,8 +64,8 @@ jobs: runner: [self_hosted, type-cx52, image-x86-app-docker-ce] arch: amd64 build_type: full - apt-dependencies: pkg-config libxext-dev libdouble-conversion-dev libpcre2-16-0 libpulse0 libharfbuzz-dev libnss3 libnspr4 libxdamage1 libasound2 # add missing dependencies to docker image when convenient - image: docker.io/overte/overte-full-build:0.1.1-ubuntu-20.04-amd64 + # apt-dependencies: # add missing dependencies to docker image when convenient + image: docker.io/overte/overte-full-build:0.1.2-ubuntu-20.04-amd64 # Android builds are currently failing #- os: ubuntu-18.04 # build_type: android @@ -75,7 +75,7 @@ jobs: runner: [self_hosted, type-cax41, image-arm-app-docker-ce] arch: aarch64 build_type: full - image: docker.io/overte/overte-full-build:0.1.1-ubuntu-22.04-aarch64 + image: docker.io/overte/overte-full-build:0.1.2-ubuntu-22.04-aarch64 fail-fast: false runs-on: ${{matrix.runner}} container: ${{matrix.image}} diff --git a/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-20.04 b/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-20.04 index 12a56ced03..eb26d1b426 100644 --- a/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-20.04 +++ b/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-20.04 @@ -1,8 +1,8 @@ -# Copyright 2022-2023 Overte e.V. +# Copyright 2022-2024 Overte e.V. # SPDX-License-Identifier: Apache-2.0 # Docker file for building Overte -# Example build: docker build -t overte/overte-full-build:0.1.1-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 . +# Example build: docker build -t overte/overte-full-build:0.1.2-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 . FROM ubuntu:20.04 LABEL maintainer="Julian Groß (julian.gro@overte.org)" LABEL description="Development image for full Overte builds" @@ -18,6 +18,8 @@ RUN apt-get update && apt-get -y install tzdata RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev # Install server-console build dependencies RUN apt-get -y install npm +# Install Interface dependencies +RUN apt-get -y install pkg-config libxext-dev libdouble-conversion-dev libpcre2-16-0 libpulse0 libharfbuzz-dev libnss3 libnspr4 libxdamage1 libasound2 vulkan-validationlayers libvulkan-dev libvulkan1 # Install tools for package creation RUN apt-get -y install sudo chrpath binutils dh-make diff --git a/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-22.04 b/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-22.04 index a80207471e..a4da419e87 100644 --- a/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-22.04 +++ b/tools/ci-scripts/linux-ci/Dockerfile_build_ubuntu-22.04 @@ -1,8 +1,8 @@ -# Copyright 2022-2023 Overte e.V. +# Copyright 2022-2024 Overte e.V. # SPDX-License-Identifier: Apache-2.0 # Docker file for building Overte -# Example build: docker build -t overte/overte-full-build:0.1.1-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 . +# Example build: docker build -t overte/overte-full-build:0.1.2-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 . FROM ubuntu:22.04 LABEL maintainer="Julian Groß (julian.gro@overte.org)" LABEL description="Development image for full Overte builds" @@ -19,7 +19,7 @@ RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websocket # Install Overte tools build dependencies RUN apt-get -y install libqt5webchannel5-dev qtwebengine5-dev libqt5xmlpatterns5-dev # Install Overte Interface build dependencies -RUN apt-get -y install libqt5svg5-dev qttools5-dev +RUN apt-get -y install libqt5svg5-dev qttools5-dev vulkan-validationlayers libvulkan-dev libvulkan1 libqt5x11extras5-dev qtbase5-private-dev # Install server-console build dependencies RUN apt-get -y install npm From 4c5bc90b32e80590b13eb8090fe7686170a0f61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 11:58:09 +0100 Subject: [PATCH 10/13] Update deprecated upload-artifact action. --- .github/workflows/pr_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index 0db1e73bf6..c9d06d5663 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -244,7 +244,7 @@ jobs: - name: Archive cmake logs if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz path: ./cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz From ce16815ab6453f5fc6430740b6a83af5488ac2cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 12:00:27 +0100 Subject: [PATCH 11/13] Remove outdated set-output step. --- .github/workflows/release_build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release_build.yml b/.github/workflows/release_build.yml index a678053632..b72075017c 100644 --- a/.github/workflows/release_build.yml +++ b/.github/workflows/release_build.yml @@ -56,7 +56,6 @@ jobs: echo "UPLOAD_PREFIX=build/overte/release/" >> $GITHUB_ENV fi - echo ::set-output name=github_sha_short::`echo $GIT_COMMIT | cut -c1-7` echo "JOB_NAME=${{matrix.os}}, ${{matrix.build_type}}" >> $GITHUB_ENV echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV From 821935380c05ea58c1cf799a329ce54d9e801a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 12:02:23 +0100 Subject: [PATCH 12/13] Update deprecated upload-artifact action. --- .github/workflows/linux_server_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux_server_build.yml b/.github/workflows/linux_server_build.yml index 64f1529221..2f16eb3beb 100644 --- a/.github/workflows/linux_server_build.yml +++ b/.github/workflows/linux_server_build.yml @@ -266,7 +266,7 @@ jobs: - name: Archive cmake logs if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: cmake-logs-${{ matrix.os }}-${{ matrix.arch }}-${{ github.event.number }}.tar.xz path: cmake-logs-${{ matrix.os }}-${{ matrix.arch }}-${{ github.event.number }}.tar.xz From c1906ae3f2a8f2a98e5f326d1b7630a025f50e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Gro=C3=9F?= Date: Fri, 27 Dec 2024 12:04:33 +0100 Subject: [PATCH 13/13] Remove End-of-Life Fedora. --- .github/workflows/linux_server_build.yml | 14 ------------- .../rpm_package/Dockerfile_build_fedora-39 | 20 ------------------- 2 files changed, 34 deletions(-) delete mode 100644 tools/ci-scripts/rpm_package/Dockerfile_build_fedora-39 diff --git a/.github/workflows/linux_server_build.yml b/.github/workflows/linux_server_build.yml index 2f16eb3beb..084287c25b 100644 --- a/.github/workflows/linux_server_build.yml +++ b/.github/workflows/linux_server_build.yml @@ -82,16 +82,6 @@ jobs: arch: aarch64 runner: [self_hosted, type-cax41, image-arm-app-docker-ce] - - os: fedora-39 - image: docker.io/overte/overte-server-build:0.1.4-fedora-39-amd64 - arch: amd64 - runner: [self_hosted, type-cx52, image-x86-app-docker-ce] - - - os: fedora-39 - image: docker.io/overte/overte-server-build:0.1.4-fedora-39-aarch64 - arch: aarch64 - runner: [self_hosted, type-cax41, image-arm-app-docker-ce] - - os: fedora-40 image: docker.io/overte/overte-server-build:0.1.4-fedora-40-amd64 arch: amd64 @@ -224,10 +214,6 @@ jobs: else # RPM if [ "${{ matrix.os }}" == "rockylinux-9" ]; then echo "ARTIFACT_PATTERN=overte-server-$RPMVERSION-1.el9.$INSTALLER_EXT" >> $GITHUB_ENV - elif [ "${{ matrix.os }}" == "fedora-38" ]; then - echo "ARTIFACT_PATTERN=overte-server-$RPMVERSION-1.fc38.$INSTALLER_EXT" >> $GITHUB_ENV - elif [ "${{ matrix.os }}" == "fedora-39" ]; then - echo "ARTIFACT_PATTERN=overte-server-$RPMVERSION-1.fc39.$INSTALLER_EXT" >> $GITHUB_ENV elif [ "${{ matrix.os }}" == "fedora-40" ]; then echo "ARTIFACT_PATTERN=overte-server-$RPMVERSION-1.fc40.$INSTALLER_EXT" >> $GITHUB_ENV else diff --git a/tools/ci-scripts/rpm_package/Dockerfile_build_fedora-39 b/tools/ci-scripts/rpm_package/Dockerfile_build_fedora-39 deleted file mode 100644 index ef5ef24819..0000000000 --- a/tools/ci-scripts/rpm_package/Dockerfile_build_fedora-39 +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2022-2024 Overte e.V. -# SPDX-License-Identifier: Apache-2.0 - -# Docker file for building Overte Server -# Example build: docker build -t overte/overte-server-build:0.1.4-fedora-39 -f Dockerfile_build_fedora-39 . -FROM fedora:39 -LABEL maintainer="Julian Groß (julian.gro@overte.org)" -LABEL description="Development image for Overte Domain server and assignment clients." - -# Install Overte domain-server and assignment-client build dependencies -RUN dnf -y install curl ninja-build git cmake gcc gcc-c++ openssl-devel qt5-qtwebsockets-devel qt5-qtmultimedia-devel unzip libXext-devel qt5-qtwebchannel-devel qt5-qtwebengine-devel qt5-qtxmlpatterns-devel systemd-devel python3.11 - -# Install additional build tools -RUN dnf -y install zip unzip - -# Install tools for package creation -RUN dnf -y install chrpath rpmdevtools - -# Install tools needed for our Github Actions Workflow -Run dnf -y install python3-boto3 python3-pygithub