From 1a945fe06634329749cd4af3c6c294a718e3b136 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 29 Nov 2023 17:04:58 +0100 Subject: [PATCH 01/10] Update linux.yml --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 1dee7a237f..d8cd580190 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -111,7 +111,7 @@ jobs: sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt update sudo apt upgrade - sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf squashfs-tools strace util-linux zsync -y + sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf squashfs-tools strace util-linux zsync libxcb-cursor-dev -y # Get the AppImage tool wget --no-check-certificate --quiet https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O $GITHUB_WORKSPACE/appimagetool From ac55306d0bd78a95d590e2207ea195a20d44af63 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 29 Nov 2023 18:44:11 +0100 Subject: [PATCH 02/10] Use Dulcificum 0.1.0-beta.1 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 034879e620..48cba847be 100644 --- a/conanfile.py +++ b/conanfile.py @@ -322,7 +322,7 @@ class CuraConan(ConanFile): self.requires("curaengine_grpc_definitions/0.1.0") self.requires("zlib/1.2.13") self.requires("pyarcus/5.3.0") - self.requires("dulcificum/(latest)@ultimaker/stable") + self.requires("dulcificum/0.1.0-beta.1") self.requires("curaengine/(latest)@ultimaker/testing") self.requires("pysavitar/5.3.0") self.requires("pynest2d/5.3.0") From b65cd0181f9882b1bc68fd6d42db7e4fd4a200ef Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Wed, 29 Nov 2023 22:14:18 +0100 Subject: [PATCH 03/10] Disable shared openssl for Windows Temp fix Contributes to CURA-10561 --- .github/workflows/windows.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index ad946d9d99..f1772c7f60 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -140,8 +140,8 @@ jobs: .\cura_inst\Scripts\activate_github_actions_env.ps1 .\cura_inst\Scripts\activate_github_actions_version_env.ps1 - - name: Install OpenSSL shared - run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy +# - name: Install OpenSSL shared +# run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy - name: Copy OpenSSL shared (Powershell) run: | From ff19142fdf749f3012677e8510099604563b2826 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 30 Nov 2023 07:16:15 +0100 Subject: [PATCH 04/10] Don't try to copy non existing openssl Contributes to CURA-10831 --- .github/workflows/windows.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index f1772c7f60..6944969313 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -142,11 +142,11 @@ jobs: # - name: Install OpenSSL shared # run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy - - - name: Copy OpenSSL shared (Powershell) - run: | - cp openssl/bin/*.dll ./cura_inst/Scripts/ - cp openssl/lib/*.lib ./cura_inst/Lib/ +# +# - name: Copy OpenSSL shared (Powershell) +# run: | +# cp openssl/bin/*.dll ./cura_inst/Scripts/ +# cp openssl/lib/*.lib ./cura_inst/Lib/ - name: Create the Cura dist run: pyinstaller ./cura_inst/UltiMaker-Cura.spec From 2f452c6581ba11c3381b44ff1d5151fc56173687 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 30 Nov 2023 10:01:20 +0100 Subject: [PATCH 05/10] `enable_sentry` in install commands --- .github/workflows/linux.yml | 2 +- .github/workflows/macos.yml | 2 +- .github/workflows/windows.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 52dc5e73d3..59f7c8dea8 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -150,7 +150,7 @@ jobs: run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache" - name: Create the Packages (Bash) - run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -c tools.build:skip_test=True + run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -o cura:enable_sentry=True -c tools.build:skip_test=True - name: Remove internal packages before uploading run: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 9e6dbf8541..1415b446b5 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -159,7 +159,7 @@ jobs: run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache" - name: Create the Packages (Bash) - run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -c tools.build:skip_test=True + run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -o cura:enable_sentry=True -c tools.build:skip_test=True - name: Remove internal packages before uploading run: | diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index eb0e47b2bf..00756ca425 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -125,7 +125,7 @@ jobs: run: conan config set storage.download_cache="C:\Users\runneradmin\.conan\conan_download_cache" - name: Create the Packages (Powershell) - run: conan install $Env:CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$Env:ENTERPRISE -o cura:staging=$Env:STAGING -c tools.build:skip_test=True + run: conan install $Env:CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$Env:ENTERPRISE -o cura:staging=$Env:STAGING -o cura:enable_sentry=True -c tools.build:skip_test=True - name: Remove internal packages before uploading run: | From 29193d833c4fd3321e3936bff1dfe9c5ef107cb0 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 30 Nov 2023 11:01:51 +0100 Subject: [PATCH 06/10] Revert "`enable_sentry` in install commands" This reverts commit 2f452c6581ba11c3381b44ff1d5151fc56173687. --- .github/workflows/linux.yml | 2 +- .github/workflows/macos.yml | 2 +- .github/workflows/windows.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 23356d6652..d8cd580190 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -147,7 +147,7 @@ jobs: run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache" - name: Create the Packages (Bash) - run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -o cura:enable_sentry=True -c tools.build:skip_test=True + run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -c tools.build:skip_test=True - name: Remove internal packages before uploading run: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index a164cda089..2c7186a764 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -156,7 +156,7 @@ jobs: run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache" - name: Create the Packages (Bash) - run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -o cura:enable_sentry=True -c tools.build:skip_test=True + run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING -c tools.build:skip_test=True - name: Remove internal packages before uploading run: | diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 431627f89c..6944969313 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -122,7 +122,7 @@ jobs: run: conan config set storage.download_cache="C:\Users\runneradmin\.conan\conan_download_cache" - name: Create the Packages (Powershell) - run: conan install $Env:CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$Env:ENTERPRISE -o cura:staging=$Env:STAGING -o cura:enable_sentry=True -c tools.build:skip_test=True + run: conan install $Env:CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$Env:ENTERPRISE -o cura:staging=$Env:STAGING -c tools.build:skip_test=True - name: Remove internal packages before uploading run: | From ef5bc6d3d5965a02f603c72da1d20db6d2009723 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 30 Nov 2023 12:57:14 +0100 Subject: [PATCH 07/10] Use custom CPython 3.10.4 and OpenSSL 3.2.0 Due to changes made to the recipes up stream, and some tweaks to our own cpython recipe. We can now build cpython with the newest OpenSSL version Contribute to CURA-11080 --- conanfile.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 48cba847be..18ad185d6a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -307,6 +307,7 @@ class CuraConan(ConanFile): self.options["pynest2d"].shared = True self.options["dulcificum"].shared = self.settings.os != "Windows" self.options["cpython"].shared = True + self.options["openssl"].shared = True self.options["boost"].header_only = True if self.settings.os == "Linux": self.options["curaengine_grpc_definitions"].shared = True @@ -329,7 +330,8 @@ class CuraConan(ConanFile): self.requires("curaengine_plugin_gradual_flow/0.1.0") self.requires("uranium/(latest)@ultimaker/testing") self.requires("cura_binary_data/(latest)@ultimaker/testing") - self.requires("cpython/3.10.4") + self.requires("cpython/3.10.4@ultimaker/stable") + self.requires("openssl/3.2.0") if self.options.internal: self.requires("cura_private_data/(latest)@internal/testing") self.requires("fdm_materials/(latest)@internal/testing") From 7573c3e994a7880136dcfdef920b99d42708f133 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 30 Nov 2023 12:58:47 +0100 Subject: [PATCH 08/10] Build OpenSSL 3 shared No longer a need to deploy a shared dep independently. Contribute to CURA-11080 --- .github/workflows/linux.yml | 15 +-------------- .github/workflows/macos.yml | 12 ------------ .github/workflows/windows.yml | 8 -------- 3 files changed, 1 insertion(+), 34 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d8cd580190..8b6d892fa0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -162,20 +162,7 @@ jobs: - name: Set Environment variables for Cura (bash) run: | . ./cura_inst/bin/activate_github_actions_env.sh - . ./cura_inst/bin/activate_github_actions_version_env.sh - - # FIXME: This is a workaround to ensure that we use and pack a shared library for OpenSSL 1.1.1l. We currently compile - # OpenSSL statically for CPython, but our Python Dependenies (such as PyQt6) require a shared library. - # Because Conan won't allow for building the same library with two different options (easily) we need to install it explicitly - # and do a manual copy to the VirtualEnv, such that Pyinstaller can find it. - - - name: Install OpenSSL shared - run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy - - - name: Copy OpenSSL shared (Bash) - run: | - cp ./openssl/lib/*.so* ./cura_inst/bin/ || true - cp ./openssl/lib/*.dylib* ./cura_inst/bin/ || true + . ./cura_inst/bin/activate_github_actions_version_env.sh - name: Create the Cura dist run: pyinstaller ./cura_inst/UltiMaker-Cura.spec diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 2c7186a764..c7c34d9d51 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -177,18 +177,6 @@ jobs: env: TEMP_KEYCHAIN_PASSWORD: ${{ steps.macos-keychain-developer-cert.outputs.keychain-password }} - # FIXME: This is a workaround to ensure that we use and pack a shared library for OpenSSL 1.1.1l. We currently compile - # OpenSSL statically for CPython, but our Python Dependenies (such as PyQt6) require a shared library. - # Because Conan won't allow for building the same library with two different options (easily) we need to install it explicitly - # and do a manual copy to the VirtualEnv, such that Pyinstaller can find it. - - name: Install OpenSSL shared - run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy - - - name: Copy OpenSSL shared (Bash) - run: | - cp ./openssl/lib/*.so* ./cura_inst/bin/ || true - cp ./openssl/lib/*.dylib* ./cura_inst/bin/ || true - - name: Create the Cura dist run: pyinstaller ./cura_inst/UltiMaker-Cura.spec diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 6944969313..dfffc4540b 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -140,14 +140,6 @@ jobs: .\cura_inst\Scripts\activate_github_actions_env.ps1 .\cura_inst\Scripts\activate_github_actions_version_env.ps1 -# - name: Install OpenSSL shared -# run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy -# -# - name: Copy OpenSSL shared (Powershell) -# run: | -# cp openssl/bin/*.dll ./cura_inst/Scripts/ -# cp openssl/lib/*.lib ./cura_inst/Lib/ - - name: Create the Cura dist run: pyinstaller ./cura_inst/UltiMaker-Cura.spec From b629669f77ee7dc3345283170b8148d017f073f7 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 30 Nov 2023 14:00:28 +0100 Subject: [PATCH 09/10] Use sip<=6.7.12 6.8.0 seams to have bug which is botching up building pyArcus Contribute to CURA-11080 --- .github/workflows/requirements-conan-package.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/requirements-conan-package.txt b/.github/workflows/requirements-conan-package.txt index 9380d1cb98..215557e367 100644 --- a/.github/workflows/requirements-conan-package.txt +++ b/.github/workflows/requirements-conan-package.txt @@ -1,2 +1,2 @@ conan>=1.60.2,<2.0.0 -sip +sip<=6.7.12 From 10b69e801e7547bbf730345552ba61f337685aab Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 30 Nov 2023 23:38:27 +0100 Subject: [PATCH 10/10] Openssl shared on Linux static for the rest Contribute to CURA-11080 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 18ad185d6a..d52d62e5cc 100644 --- a/conanfile.py +++ b/conanfile.py @@ -307,10 +307,10 @@ class CuraConan(ConanFile): self.options["pynest2d"].shared = True self.options["dulcificum"].shared = self.settings.os != "Windows" self.options["cpython"].shared = True - self.options["openssl"].shared = True self.options["boost"].header_only = True if self.settings.os == "Linux": self.options["curaengine_grpc_definitions"].shared = True + self.options["openssl"].shared = True def validate(self): version = self.conf.get("user.cura:version", default = self.version, check_type = str)