News:

OS2World.com Forum is back !!!

Remember to visit OS2World at:
http://www.os2world.com

Main Menu

Qt6 Development

Started by Paul Smedley, November 10, 2022, 09:28:30 PM

Previous topic - Next topic

Dave Yeo

#765
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,

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.

Dave Yeo

Updated dooble_filter.txt and dooble_accepted_or_blocked_domains.txt from todays pull.

David McKenna

 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

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

Quote from: David McKenna 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,

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

 Dave,

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

Regards,

Dave Yeo

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.

[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

Quote from: Dave Yeo 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.

[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

Quote from: David McKenna on May 19, 2024, 01:48:19 PM
  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

Quote from: Paul Smedley on May 20, 2024, 11:43:41 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

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

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

#775
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

Paul Smedley

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:

{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

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

Quote from: Paul Smedley 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

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

Paul Smedley

Quote from: Dave Yeo 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.

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