Author Topic: Qt6 Development  (Read 365788 times)

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #765 on: May 19, 2024, 08:17:07 pm »
Latest from Paul ran fine here, using Qt6Widge.dll it seems.
Here's a new build. I'll do a better one later.
Weirdly the build could not find most libs until I ran emxomf on them and then renamed them to remove the _dll. At least now the build works here.
Edit: this is todays pull
Edit2: fix so dooble_settings.db is stored correctly instead of in the root.
Patch,
Code: [Select]
diff --git a/Source/dooble_main.cc b/Source/dooble_main.cc
index c8a22672..7fce9c2f 100644
--- a/Source/dooble_main.cc
+++ b/Source/dooble_main.cc
@@ -278,7 +278,6 @@ int main(int argc, char *argv[])
   QDir::setCurrent("/Applications/Dooble.d");
 #endif
   QString dooble_settings_path("");
-  dooble::s_application = new dooble_application(argc, argv);
 #if defined(Q_OS_WIN)
   auto bytes(qgetenv("DOOBLE_HOME").trimmed());
 
@@ -369,6 +368,12 @@ int main(int argc, char *argv[])
 
   dooble_settings::prepare_web_engine_environment_variables();
 
+  /*
+  ** Create the application after environment variables are prepared.
+  */
+
+  dooble::s_application = new dooble_application(argc, argv);
+
   /*
   ** Create a splash screen.
   */

Weird that this is needed.
« Last Edit: May 19, 2024, 08:39:08 pm by Dave Yeo »

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #766 on: May 19, 2024, 08:29:21 pm »
Updated dooble_filter.txt and dooble_accepted_or_blocked_domains.txt from todays pull.

David McKenna

  • Hero Member
  • *****
  • Posts: 813
  • Karma: +25/-0
    • View Profile
Re: Qt6 Development
« Reply #767 on: May 19, 2024, 09:52:46 pm »
 Thanks Dave! Working good here, also with new block list. One thing I notice with this one I didn't see before: at 'Settings'->'Web'-> 'Spell Checkers' there is a warning: 'en_US.bdic cannot be accessed!'. That file is available in the 'qtwebengine_dictionaries' directory and it worked with the 12/25/2023 version. Does it need to be updated or something?

Regards,

David McKenna

  • Hero Member
  • *****
  • Posts: 813
  • Karma: +25/-0
    • View Profile
Re: Qt6 Development
« Reply #768 on: May 19, 2024, 10:01:55 pm »
Andy,

  At one point Paul changed the names of DLL's to avoid duplicates, so any version of Dooble for QT6  before that won't work now. Try Dave's new one (above) - it seems to work well.

Regards,

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #769 on: May 19, 2024, 10:38:45 pm »
Thanks Dave! Working good here, also with new block list. One thing I notice with this one I didn't see before: at 'Settings'->'Web'-> 'Spell Checkers' there is a warning: 'en_US.bdic cannot be accessed!'. That file is available in the 'qtwebengine_dictionaries' directory and it worked with the 12/25/2023 version. Does it need to be updated or something?

Regards,

Yes, something is not right. First this build is from the Dooble upstream repository rather then mine which I forked from the Bitwise repository. Maybe some missed patches? I'll update my repository and do more of a proper release later.
Here, I had to create the qtwebengine_dictionaries directory under obj/ where I built and launched the new build. While this changed the error, it changed it to something like "could not access /en_CA.bdic" and after copying en_CA.bdic to the root, the warnings went away.
I investigate after syncing repositories.

David McKenna

  • Hero Member
  • *****
  • Posts: 813
  • Karma: +25/-0
    • View Profile
Re: Qt6 Development
« Reply #770 on: May 19, 2024, 10:54:46 pm »
 Dave,

 Yep - putting en_US.bdic in the root of the %UNIXROOT% drive solves the error. Thanks for the tip...

Regards,

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #771 on: May 19, 2024, 11:03:54 pm »
Finding a weird error trying to build my tree, same error I had before.
Building from dooble works as expected, run qmake ../dooble.pro results in a message about QtCharts and a makefile. Whereas from dooble-dry, failure.
Code: [Select]
[L:\work\dooble\obj]qmake ../dooble.pro
Project MESSAGE: The QtCharts module has been discovered.

[L:\work\dooble\obj]cd ..\..\dooble-dry\obj

[L:\work\dooble-dry\obj]qmake ../dooble.pro
L:/QT6-6.2.X/mkspecs/features/toolchain.prf:76: Variable QMAKE_CXX.COMPILER_MACROS is not defined.
Project ERROR: failed to parse default search paths from compiler output

Weird. The dooble.pro files are identical, same environment.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2285
  • Karma: +176/-0
    • View Profile
Re: Qt6 Development
« Reply #772 on: May 20, 2024, 11:43:41 am »
Finding a weird error trying to build my tree, same error I had before.
Building from dooble works as expected, run qmake ../dooble.pro results in a message about QtCharts and a makefile. Whereas from dooble-dry, failure.
Code: [Select]
[L:\work\dooble\obj]qmake ../dooble.pro
Project MESSAGE: The QtCharts module has been discovered.

[L:\work\dooble\obj]cd ..\..\dooble-dry\obj

[L:\work\dooble-dry\obj]qmake ../dooble.pro
L:/QT6-6.2.X/mkspecs/features/toolchain.prf:76: Variable QMAKE_CXX.COMPILER_MACROS is not defined.
Project ERROR: failed to parse default search paths from compiler output

Weird. The dooble.pro files are identical, same environment.

I have seen this before,  but not consistently - does qmake have any debug switches  that may highlight the differences? looks like '-d' might do it...

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2285
  • Karma: +176/-0
    • View Profile
Re: Qt6 Development
« Reply #773 on: May 20, 2024, 11:52:48 am »
  It HAS been awhile... hope all is well! I am running your last QT6 version of Dooble (could you build the latest?) with this new build of QT6.2 and it seems to work as well as the last. Looking forward to the webengine part too. I'll test the examples in the next couple of days... thanks!

Yeah it just sorta happened..... webengine might take some time..... the chromium version in 6.2.8 is roughly the same as the webengine in 6.4.x - I may well hit the same issues with javascript, but who know,  it  may be that the crashes were due to patching issues,  and I may be more careful/diligent this time around. There's  a decent amount of work to be done to finish patching before I even think about trying to compile it....

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #774 on: May 21, 2024, 12:26:05 am »
I have seen this before,  but not consistently - does qmake have any debug switches  that may highlight the differences? looks like '-d' might do it...

Ok, the dooble build that worked was due to having a stray .qmake.stash in the tree. It contains the QMAKE_CXX stuff and was created by Qt5. Sure enough running qmake-qt5 first, then qmake[-qt6] works, so a work around.
Further investigation shows where things go wrong but trying to trace the various variables has been a failure.

Qt6
Code: [Select]
DEBUG 1: L:/QT6-6.2.X/mkspecs/features/toolchain.prf:64: finished 'else' branch
DEBUG 1: L:/QT6-6.2.X/mkspecs/features/toolchain.prf:66: entering loop for v over
DEBUG 1: L:/QT6-6.2.X/mkspecs/features/toolchain.prf:66: done looping
DEBUG 1: L:/QT6-6.2.X/mkspecs/features/toolchain.prf:76: evaluating test function "cache"
DEBUG 1: L:/QT6-6.2.X/mkspecs/features/toolchain.prf:76: calling built-in cache(QMAKE_CXX.COMPILER_MACROS, "set stash")

Qt5
Code: [Select]
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:64: finished 'else' branch
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:66: entering loop for v over "# 1 \"W:/usr/lib/qt5/mkspecs/features/data/macros.cpp\"" "# 1 \"<built-in>\"" "# 1 \"<command-line>\"" "# 1 \"W:/usr/lib/qt5/mkspecs/features/data/macros.cpp\"" "QT_COMPILER_STDCXX = 201402L" "# 26 \"W:/usr/lib/qt5/mkspecs/features/data/macros.cpp\"" "QMAKE_GCC_MAJOR_VERSION = 9" "QMAKE_GCC_MINOR_VERSION = 2" "QMAKE_GCC_PATCH_VERSION = 0"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:66: loop iteration "# 1 \"W:/usr/lib/qt5/mkspecs/features/data/macros.cpp\""
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:66: entering block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: NOT
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: evaluating test function "contains"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: calling built-in contains(v, "[A-Z_]+ = .*")
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: test function returned false
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: AND
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: flow control statement 'next', aborting block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: loop iteration "# 1 \"<built-in>\""
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: entering block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: NOT
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: evaluating test function "contains"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: calling built-in contains(v, "[A-Z_]+ = .*")
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: test function returned false
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: AND
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: flow control statement 'next', aborting block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: loop iteration "# 1 \"<command-line>\""
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: entering block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: NOT
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: evaluating test function "contains"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: calling built-in contains(v, "[A-Z_]+ = .*")
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: test function returned false
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: AND
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: flow control statement 'next', aborting block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: loop iteration "# 1 \"W:/usr/lib/qt5/mkspecs/features/data/macros.cpp\""
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: entering block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: NOT
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: evaluating test function "contains"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: calling built-in contains(v, "[A-Z_]+ = .*")
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: test function returned false
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: AND
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: flow control statement 'next', aborting block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: loop iteration "QT_COMPILER_STDCXX = 201402L"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: entering block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: NOT
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: evaluating test function "contains"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: calling built-in contains(v, "[A-Z_]+ = .*")
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: test function returned true
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: AND
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:67: skipped flow control statement 'next'
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:69: evaluating test function "eval"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:69: calling built-in eval("QT_COMPILER_STDCXX = 201402L")
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf: entering block
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:69: QT_COMPILER_STDCXX := 201402L
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:69: leaving block, okey=true
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:69: test function returned true
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:70: v := QT_COMPILER_STDCXX
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:71: evaluating test function "isEmpty"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:71: calling built-in isEmpty(QT_COMPILER_STDCXX)
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:71: test function returned false
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:71: AND
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:71: skipped test function "error"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:73: evaluating test function "cache"
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:73: calling built-in cache(QMAKE_CXX.QT_COMPILER_STDCXX, "set stash", QT_COMPILER_STDCXX)
Info: creating stash file L:\work\dooble-dry\obj\.qmake.stash
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:73: test function returned true
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:74: QMAKE_CXX.COMPILER_MACROS := QT_COMPILER_STDCXX
DEBUG 1: /@unixroot/usr/lib/qt5/mkspecs/features/toolchain.prf:74: leaving block, okey=true
...

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2285
  • Karma: +176/-0
    • View Profile
Re: Qt6 Development
« Reply #775 on: May 21, 2024, 07:18:27 am »
Thanks Dave, that will give some clues.... Are you able to raise an issue in the qt6-base-os2 repo?

Ok, I think the issue is that the files in https://github.com/bitwiseworks/qtbase-os2/tree/master/mkspecs/features/os2 are missing in Qt6
« Last Edit: May 21, 2024, 07:57:00 am by Paul Smedley »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2285
  • Karma: +176/-0
    • View Profile
Re: Qt6 Development
« Reply #776 on: May 24, 2024, 06:02:59 am »
OK I created a new branch (qtwebengine-6.2.8) to work on this on.

I did the patching and commit on ubuntu, where git is much quicker.

Now it keeps getting stuck (at various percentages) when trying to add the new branch as another worktree:

Code: [Select]
{0}[u:\dev\qt6-webengine-os2] u:\git\bin\git worktree add ../qtwebengine-6.2.8 q
twebengine-6.2.8
Preparing worktree (checking out 'qtwebengine-6.2.8')
Updating files:  68% (153207/223582)

<sigh> our git sucks with large repos.... I've tried with KO's latest and the one in rpm. It just stalls and running any libc process just hangs.  No way to recover other than reboot and try again :(

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #777 on: May 24, 2024, 06:25:18 am »
Mount U: under Ubuntu and do it? Probably have to do it as root, or do a chown first.
Maximize memory under OS/2 and try again. Maximum VIRTUALADDRESSLIMIT and don't load the WPS and minimize what else is loaded, also a small JFS cache., no HPFS or FAT32. I started running OS/2 on a 386 with 4MB's of ram. I had it tuned to run pretty good, didn't run the WPS for a long time until I upgraded to 8 MB's of ram.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 5089
  • Karma: +117/-1
    • View Profile
Re: Qt6 Development
« Reply #778 on: May 24, 2024, 06:26:39 am »
Thanks Dave, that will give some clues.... Are you able to raise an issue in the qt6-base-os2 repo?

Ok, I think the issue is that the files in https://github.com/bitwiseworks/qtbase-os2/tree/master/mkspecs/features/os2 are missing in Qt6

I tried adding features/os2, no change. Then I tried using the whole features/ from Qt5, still no change.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2285
  • Karma: +176/-0
    • View Profile
Re: Qt6 Development
« Reply #779 on: May 24, 2024, 07:03:31 am »
Mount U: under Ubuntu and do it? Probably have to do it as root, or do a chown first.
Maximize memory under OS/2 and try again. Maximum VIRTUALADDRESSLIMIT and don't load the WPS and minimize what else is loaded, also a small JFS cache., no HPFS or FAT32. I started running OS/2 on a 386 with 4MB's of ram. I had it tuned to run pretty good, didn't run the WPS for a long time until I upgraded to 8 MB's of ram.

I managed to get the checkout to complete using ACPI /MAXCPU=1