From ef5bc6d3d5965a02f603c72da1d20db6d2009723 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 30 Nov 2023 12:57:14 +0100 Subject: [PATCH 1/4] 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 2/4] 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 3/4] 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 4/4] 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)