Ultimaker / cura-build-environment

CMake project to build dependencies for Cura
GNU Affero General Public License v3.0
24 stars 55 forks source link

zlib: Use URL pointing to the archive #123

Closed thopiekar closed 2 years ago

thopiekar commented 2 years ago

The URL got invalid in the last couple of days. Looks like everything that is not the most recent version is placed in "fossils". However, the most recent version is located there, too. To improve the liveness of CBE, I would recommend downloading from there any time.

Signed-off-by: Thomas Karl Pietrowski thopiekar@gmail.com

jellespijker commented 2 years ago

Yes @thopiekar a lot of our external sources became unreliable lately. But that won't an issue much longer, we are switching to managing our dependencies with Conan.

thopiekar commented 2 years ago

Ok, but is that going to happen in short term or is my PR useful for you still?

jellespijker commented 2 years ago

I just switched to the Git version for our PyQt6 upgrade https://github.com/Ultimaker/cura-build-environment/tree/CURA-8640_PyQt6_upgrade In the meantime.

We expect to merge that branch quickly.

jellespijker commented 2 years ago

In the meantime I see no harm in merging your suggested source. Thank you.

thopiekar commented 2 years ago

No problem 👍

thopiekar commented 2 years ago

Btw. are there going to be big breakages due to the upgrade to pyqt6? I'm not that deep into this topic.

jellespijker commented 2 years ago

Will be implemented probably within two months after the 5.0 release.

I myself already work with Conan on my Linux, Mac and Windows machine on a personal basis.

Some third-party recipes of dependencies (also python modules) can be found here https://github.com/Ultimaker/conan-ultimaker-index/tree/master/recipes

And for our normal repo's you can check the conan/master branches. These are my proof of concepts. But they are a bit out of sync atm. Since I been buried head deap on the build server working on the PyQt6 upgrade.

The idea is that setting up cura from source or building is basically a one liner per dependencies. Not huge multilayered build scripts.

jellespijker commented 2 years ago

Yeah the PyQt6 upgrade will have some impact, mostly how libArcus, libSavitar en pynest are build and compiled. But ofcourse also on the GUI side. There multiple small differences in types and classes moving in and out of namespaces.

jellespijker commented 2 years ago

If you do a diff over CURA-8640_PyQt6 branch against master on Cura and Uranium it will become fairly visible what those shifts will be.

But from a build perspective check the CURA-8640_PyQt6_upgrade branches on Savitar, arcus and pynest. We had to do some big changes on how we create the sip bindings. We now use only sip-build 6.5.0 for generating the code and use cmake for compiling and linking. I could be good to check if the symbols etc are the exported correctly on those branches.

jellespijker commented 2 years ago

Feel free to ask some more indepth question about some of the choices we made and why via email j.spijker@ultimaker.com Don't want it to break to much on the side of our community developers, but this upgrade proofed quite challenging so there is bound to be some breakage.

jellespijker commented 2 years ago

Also moving away from cx-freeze to pyinstaller, since cx-freeze didn't traverse the shared libraries correctly, while pyinstaller seems to do that trick much better