Opened 3 years ago

Closed 3 years ago

#62982 closed request (fixed)

qt6: add port(s) for new Qt version 6

Reported by: JDLH (Jim DeLaHunt) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), jhoyt4, dlamija (Muhammed Ramiza), ra1nb0w, reneeotten (Renee Otten)
Port: qt6 qt5 qt4

Description

MacPorts has several ports qt5* and qt4*, for the version 5.x and 4.x of the Qt application development tool kit. The Qt upstream developers have released versions 6.2 and 6.1 of Qt. I would like to be able to use Qt version 6 for some apps which depend on it, for example freeciv. Thus I would appreciate a set of qt6* ports which parallel the existing qt5* and qt4* ports.

Supporting information:

Given the large number of subports in port info qt5, I am guessing that making a Qt6 port might be quite a bit of work. I don't know to what extent it is similar enough to Qt5 that one can save effort by reusing parts of the Qt5 port.

Sorry if this ticket is redundant. I don't see any "qt6" tickets when I search this Trac.

Change History (9)

comment:1 Changed 3 years ago by jhoyt4

Cc: jhoyt4 added

comment:2 Changed 3 years ago by dlamija (Muhammed Ramiza)

Cc: dlamija added

comment:3 Changed 3 years ago by ra1nb0w

Cc: ra1nb0w added

comment:4 Changed 3 years ago by jhoyt4

I started putting together a PR for qt6. Happy to get another set of eyes on the Portfile. Honestly, any and all help is welcome.

Here's the PR - https://github.com/macports/macports-ports/pull/12676

Warning - this is currently untested, but compiles on macOS 11.6 intel.

I'll certainly test more on intel and arm64 when I have a bit more time.

comment:5 Changed 3 years ago by jhoyt4

I'm not sure why this ticket didn't close - but qt6 was committed into master a couple days ago.

Admittedly, it is incomplete as I struggled to get QtQuick (which you get from qt-declarative + qtshadertools) to thread through the compile process. My best guess is this is an rpath issue.

Version 1, edited 3 years ago by jhoyt4 (previous) (next) (diff)

comment:6 Changed 3 years ago by reneeotten (Renee Otten)

@jhoyt4 does qt6-qtbase build consistently for you? For me it pretty much fails all the time with ninja: fatal: pipe: Too many open files. For me that is resolved when adding use_parallel_builds no but then of course building takes quite a while... I am not trying with build.cmd "ninja" removed to see if that helps.

I still think we can build the qtbase subport with CMake as well and don't necessarily need to use their configure script, which will just translate that to a CMake command anyway. If we can use the cmake PG that might simplify settings for compiler options/flags, deployment_targets, and all of that stuff. Before I try though, have you attempted that or did you stick with what was initially in the qt5 Portfile?

I think there are a few changes needed, I've added them to my fork in case you're interested. I'll give you a chance to take a look but they are pretty obvious I think and should be uncontroversial.

comment:7 Changed 3 years ago by reneeotten (Renee Otten)

Cc: reneeotten added

comment:8 Changed 3 years ago by jhoyt4

@reneeotten I had no issues compiling qt6-base with two machines (one intel, one arm/M1) both were running Big Sur.

I went the ninja route because of notes on qt's site heavily suggesting using ninja. Cmake is certainly an option, but I had some issues correctly translating (and locating...) all of the configure flags and found using the configure script to be easier to troubleshoot.

In regards to the subports - cmake is also a viable option, I started there but then read some qt release notes heavily suggesting using qt-configure_module.

I just looked at your fork and all of the changes look very reasonable (wish I caught several myself :) )

Last edited 3 years ago by jhoyt4 (previous) (diff)

comment:9 Changed 3 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.