feat/tqt #238

Merged
SlavekB merged 2 commits from feat/tqt into master 2 years ago
Collaborator

Added fixes for tqt:

  1. For tqt-14.0.11 TQTDIR is changed to QTDIR
  2. Replaced the -lqt option with -ltqt-mt, since libqt.so is missing.

Also added ebuild tqscintilla. This tqt fix is required to implement the tqscintilla assembly.

Added fixes for tqt: 1. For tqt-14.0.11 TQTDIR is changed to QTDIR 2. Replaced the `-lqt` option with `-ltqt-mt`, since `libqt.so` is missing. Also added ebuild tqscintilla. This tqt fix is required to implement the tqscintilla assembly.
SlavekB requested changes 2 years ago
SlavekB left a comment
Owner

I believe that regarding -lqt we need to search for a real cause elsewhere – see comment.

I believe that regarding `-lqt` we need to search for a real cause elsewhere – see comment.
sed -i -e "s:\$(TQTDIR):${TQTBASE}:" || die
sed -i -e "s:\$(QTDIR):${TQTBASE}:" || die
find "${D}${TQTBASE}/mkspecs" -name qmake.conf | xargs \
sed -i -e "s:-lqt:-ltqt-mt:" || die
Owner

This looks suspicious. The value -lqt is set for QMAKE_LIBS_QT => built without threads support, while -ltqt-mt is set for QMAKE_LIBS_QT_THREAD => built with threads support, which is correct. Therefore, it seems that a QMAKE_LIBS_QT is incorrectly used elsewhere instead of QMAKE_LIBS_QT_THREAD, and this fix hides the real problem.

This looks suspicious. The value `-lqt` is set for `QMAKE_LIBS_QT` => built without threads support, while `-ltqt-mt` is set for `QMAKE_LIBS_QT_THREAD` => built with threads support, which is correct. Therefore, it seems that a `QMAKE_LIBS_QT` is incorrectly used elsewhere instead of `QMAKE_LIBS_QT_THREAD`, and this fix hides the real problem.
Poster
Collaborator

This looks suspicious. The value -lqt is set for QMAKE_LIBS_QT => built without threads support, while -ltqt-mt is set for QMAKE_LIBS_QT_THREAD => built with threads support, which is correct. Therefore, it seems that a QMAKE_LIBS_QT is incorrectly used elsewhere instead of QMAKE_LIBS_QT_THREAD, and this fix hides the real problem.

But as far as I understand, tqt does not support the assembly of two options simultaneously with and without multithreading. The gentoo tqt build only uses multithreading. That is, either the libqt.so library is created or libtqt-mt.so is created. It's just that the TARGET variable is overridden in the src/qt.pro file when building with thread. Having an unused QMAKE_LIBS_QT available creates more problems than benefits. libtqt-mt.so library uses the same functions as libqt.so

> This looks suspicious. The value -lqt is set for QMAKE_LIBS_QT => built without threads support, while -ltqt-mt is set for QMAKE_LIBS_QT_THREAD => built with threads support, which is correct. Therefore, it seems that a QMAKE_LIBS_QT is incorrectly used elsewhere instead of QMAKE_LIBS_QT_THREAD, and this fix hides the real problem. But as far as I understand, tqt does not support the assembly of two options simultaneously with and without multithreading. The gentoo tqt build only uses multithreading. That is, either the `libqt.so` library is created or `libtqt-mt.so` is created. It's just that the `TARGET` variable is overridden in the `src/qt.pro` file when building with `thread`. Having an unused `QMAKE_LIBS_QT` available creates more problems than benefits. `libtqt-mt.so` library uses the same functions as `libqt.so`
Owner

Yes, certainly, TQt is built either with the support of the threads or not (which is a state that no one does perform for a long time, so with an uncertain result). But never both at the same time.

However, I probably see the cause of the problem in tqscintilla. There is not used variable QMAKESPEC, so it is possible that an incorrect mkspec file is selected and therefore the building is performed with incorrect configuration.

Please, you can verify what mkspec file is selected for building tqscintilla? Is it the same as it is used to build TQt?

Yes, certainly, TQt is built either with the support of the threads or not (which is a state that no one does perform for a long time, so with an uncertain result). But never both at the same time. However, I probably see the cause of the problem in tqscintilla. There is not used variable `QMAKESPEC`, so it is possible that an incorrect mkspec file is selected and therefore the building is performed with incorrect configuration. Please, you can verify what mkspec file is selected for building tqscintilla? Is it the same as it is used to build TQt?
Poster
Collaborator

However, I probably see the cause of the problem in tqscintilla. There is not used variable QMAKESPEC, so it is possible that an incorrect mkspec file is selected and therefore the building is performed with incorrect configuration.

$ grep QMAKESPEC /usr/tqt3/.qmake.cache
QMAKESPEC = linux-g++-64

$ grep -R linux-g++-64 /usr/tqt3/mkspecs/default/qmake.conf
# qmake configuration for linux-g++-64

Of course, the same is used as for installation.

# cd tqscintilla-14.0.11/designer
# grep CONFIG designer.pro
CONFIG += qt warn_on release plugin

The thread parameter is missing, hence the use of the QMAKE_LIBS_QT variable. The only difference in usage is the added thread option.

> However, I probably see the cause of the problem in tqscintilla. There is not used variable QMAKESPEC, so it is possible that an incorrect mkspec file is selected and therefore the building is performed with incorrect configuration. ``` $ grep QMAKESPEC /usr/tqt3/.qmake.cache QMAKESPEC = linux-g++-64 $ grep -R linux-g++-64 /usr/tqt3/mkspecs/default/qmake.conf # qmake configuration for linux-g++-64 ``` Of course, the same is used as for installation. ``` # cd tqscintilla-14.0.11/designer # grep CONFIG designer.pro CONFIG += qt warn_on release plugin ``` The `thread` parameter is missing, hence the use of the `QMAKE_LIBS_QT` variable. The only difference in usage is the added `thread` option.
Owner

It is strange that linux-g++ uses CONFIG += threads in the default state, while linux-g++-64 not. Similarly, mkspecs for FreeBSD do not set threads config, even though it is built with threads support. It looks like a thing that would be good to fix.

If you add threads to CONFIG in tqscintilla, it builds okay?

It is strange that `linux-g++` uses `CONFIG += threads` in the default state, while `linux-g++-64` not. Similarly, mkspecs for FreeBSD do not set `threads` config, even though it is built with threads support. It looks like a thing that would be good to fix. If you add `threads` to `CONFIG` in tqscintilla, it builds okay?
Poster
Collaborator

If you add threads to CONFIG in tqscintilla, it builds okay?

Yes of course the build is ok. Only the parameter is called thead without the ending s. Hmm, as an option, I can add treadto inux-g++-64

> If you add threads to CONFIG in tqscintilla, it builds okay? Yes of course the build is ok. Only the parameter is called `thead` without the ending s. Hmm, as an option, I can add `tread`to `inux-g++-64`
Owner

If you add threads to CONFIG in tqscintilla, it builds okay?

Yes of course the build is ok. Only the parameter is called thead without the ending s. Hmm, as an option, I can add treadto linux-g++-64

Yes, adding thread to the used mkspec file seems like a good idea. We probably do this then also in TQt.

> > If you add threads to CONFIG in tqscintilla, it builds okay? > > Yes of course the build is ok. Only the parameter is called `thead` without the ending s. Hmm, as an option, I can add `tread`to `linux-g++-64` Yes, adding `thread` to the used mkspec file seems like a good idea. We probably do this then also in TQt.
ormorph force-pushed feat/tqt from b5e4ba76ce to 5a593ebac3 2 years ago
ormorph force-pushed feat/tqt from 5a593ebac3 to def40ef6d5 2 years ago
Poster
Collaborator

Added fixes to tqt, now added thread and fixed build for mysql/mariadb.

Added fixes to tqt, now added `thread` and fixed build for `mysql`/`mariadb`.
SlavekB approved these changes 2 years ago
SlavekB left a comment
Owner

Thank you, now the bug is not masked, but it was revealed.

Thank you, now the bug is not masked, but it was revealed.
SlavekB merged commit def40ef6d5 into master 2 years ago
SlavekB deleted branch feat/tqt 2 years ago
SlavekB added this to the R14.0.12 release milestone 2 years ago

Reviewers

SlavekB approved these changes 2 years ago
The pull request has been merged as def40ef6d5.
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: TDE/tde-packaging-gentoo#238
Loading…
There is no content yet.