Giter Site home page Giter Site logo

Comments (24)

hobbes1069 avatar hobbes1069 commented on May 14, 2024 1

This would be great as Qt isn't updating pyside for Qt 5 to be compatible with Python 3.10/3.11.

from freecad.

hobbes1069 avatar hobbes1069 commented on May 14, 2024 1

Exactly. Fedora 35 already has Python 3.10 and Fedora 36 (current rawhide) will have 3.11.

TBH, I'm pretty fatigued at trying to keep FreeCAD running in Fedora. Maybe appimage/flatpak should be the primary distribution method on Linux.

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Heads up to all FC packagers:
@sgrogan
@kkremitzki
@ipatch
@adrianschroeter
@hobbes1069
@greyltc
@hfiguiere
@vejmarie
@donovaly
@apeltauer
@waebbl

from freecad.

ipatch avatar ipatch commented on May 14, 2024

@hobbes1069

have you taken a look at this?

FreeCAD/homebrew-freecad#267

and more specifically this,

FreeCAD/homebrew-freecad#267 (comment)

so drilling into the bug report i filed with the upstream pyside project,

https://bugreports.qt.io/browse/PYSIDE-1763

it seems certain patches could be back ported for pyside 5.15.2 to work with python β‰₯ 3.10

however this approach seems it will only get more brittle as dependencies move forward ie. python.


@luzpaz

i agree there should be some effort applied to begin supporting qt6 as opposed to applying patches.

in another note, i know python 3.10 is released now, but does freecad use any language feature added in python 3.10 that would make it more beneficial to use python 3.10 over python 3.9. or are we just updating for the sake of updating?

finally, i think this github issue should be placed in the freecad src repo, ie. https://github.com/freecad/freecad (or are we placing here because the upstream repo does not have github issues enabled on the project and is using its own bug tracker?) Several cmake files will require updating to support qt6 at the least, and not tomention all the header import statements that import/use qt libs that have probably been renamed since qt5. it will definitely require some effort.

from freecad.

hfiguiere avatar hfiguiere commented on May 14, 2024

The problem with Python 3.10 is that it will be on most Linux distro and in the next Flatpak runtime (August 2022). So it will definitely be a problem.

from freecad.

waebbl avatar waebbl commented on May 14, 2024

On Gentoo we have Python 3.10 and 3.11_alpha available. It's planned to make 3.10 the default Python interpreter in July. Qt6 is packaged, but still masked, and AFAICS there's not much pressure to change this.

It seems like the Qt folks are preparing a special PySide version with Python 3.10 compatibility: 5.15.2.1 to be release soon, special version with Python 3.10 support.

from freecad.

donovaly avatar donovaly commented on May 14, 2024

The problem with Python 3.10 is that it will be on most Linux distro and in the next Flatpak runtime (August 2022). So it will definitely be a problem.

Why is this a problem? What code that runs with Python 3.8 cannot be executed in Python 3.10?
Also, what Qt 5.15.2 compatible code won't be executable with Qt 6?

I find it important to know precisely what code is affected and what not.

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

It's discussed in the forum thread: https://forum.freecadweb.org/viewtopic.php?f=10&t=65089
Issues with coin3d/pivy and pyside

from freecad.

donovaly avatar donovaly commented on May 14, 2024

It's discussed in the forum thread: https://forum.freecadweb.org/viewtopic.php?f=10&t=65089 Issues with coin3d/pivy and pyside

I cannot find anything when searching for "coin3d" in this thread. Can you therefore please list the affected code here in a short list to keep the overview?

from freecad.

hobbes1069 avatar hobbes1069 commented on May 14, 2024

Hopefully a new PySide release @waebbl mentioned get's released soon, but to answer part of your question:
https://bugzilla.redhat.com/show_bug.cgi?id=1990768
https://bugzilla.redhat.com/show_bug.cgi?id=2025599

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Transferred to FreeCAD/FreeCAD repo

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Added the Porting from PySide2 to PySide6 link to the OP of this ticket.

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Started tracking Qt6 commits to master in the OP. See Commits section

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Hi @wwmayer, how would you feel about linking Qt6 related commits to this ticket so we can track them in one place?

from freecad.

wwmayer avatar wwmayer commented on May 14, 2024

339bb73 is not directly related to Qt6 but allows to reduce some if QT_VERSION < QT_VERSION_CHECK(...) checks in client code.

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Related:
#7712
#7677
#7647

from freecad.

iamdbychkov avatar iamdbychkov commented on May 14, 2024

*** There was a question on how to use FreeCad on newer linux distributions.

My answer was to use appimage from official website instead of installing freecad from OS repos.

from freecad.

adrianinsaval avatar adrianinsaval commented on May 14, 2024

what's still missing for qt6 support?

from freecad.

berniev avatar berniev commented on May 14, 2024

MacAppBundle/CMakeLists.txt
Resolve Homebrew v Pip v native on macOS esp re Python, PySide, Shiboken

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

Added #9977 to the OP

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

We're gonna need some help porting Snap to Qt6 (FreeCAD/FreeCAD-snap#19). Volunteers for this would be very much appreciated!

from freecad.

chennes avatar chennes commented on May 14, 2024

FYI compiling against Qt6 with MSVC activates the /permissive- option, which we don't currently support. PR #11014 will address these issues.

from freecad.

luzpaz avatar luzpaz commented on May 14, 2024

a nightly F(edora)39 build at this point isn't going to happen against the stock F39 repos, as there are no python qt5 bindings. For a FreeCAD nightly to be compiled successfully for F39, python qt6 bindings need to be in the virtual environment (there is already a build in copr for python-pyside6). This would require copr to include python-pyside6 in it's virtual build environment for FreeCAD nightly (it can be done, but I don't have enough experience with copr to set it up properly). When (and if) FreeCAD nightly is compiled successfully, any user who enables the FreeCAD nightly repo and wants to use it, would need to install python-pyside6 too - either will be provided from another copr repo, or ideally shipped in the FreeCAD copr repo (until Fedora officially includes the python-pyside6 in their official repos). Can someone just fix the references in the spec file from master to main, so we can get at least an attempt for a build for F38. It might finish successfully, or it might fail, but at least we can get the logs.

ref: #11619 (comment)

from freecad.

adrianinsaval avatar adrianinsaval commented on May 14, 2024

Are they using Py_LIMITED_API in their pyside build? Pyside6 uses it by default I think, I had to disable it to be able to build freecad on flatpak because freecad doesn't support that.

from freecad.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.