WIP: Add missing build dependency for kicker clock applet. #205

Open
SlavekB wants to merge 1 commits from fix/kicker-clock-build-dependency into master
SlavekB commented 9 months ago
Owner

This was causing FTBFS in some conditions.

This was causing FTBFS in some conditions.
SlavekB added this to the R14.0.11 release milestone 9 months ago
SlavekB requested review from selk 9 months ago
Owner

The PR looks good, but I wonder why we need to have a static lib that is then linked to an applet module instead of putting all together in the module itself. I can't check things easily from my phone, but it seems the static module is probably used only here?

The PR looks good, but I wonder why we need to have a static lib that is then linked to an applet module instead of putting all together in the module itself. I can't check things easily from my phone, but it seems the static module is probably used only here?
Poster
Owner

The PR looks good, but I wonder why we need to have a static lib that is then linked to an applet module instead of putting all together in the module itself. I can't check things easily from my phone, but it seems the static module is probably used only here?

I was also surprised by a static library. But the reason is clear: the library is linked not only in Clock Applet, but also to SystemTray applet.

> The PR looks good, but I wonder why we need to have a static lib that is then linked to an applet module instead of putting all together in the module itself. I can't check things easily from my phone, but it seems the static module is probably used only here? I was also surprised by a static library. But the reason is clear: the library is linked not only in Clock Applet, but also to [SystemTray applet](src/kicker/applets/systemtray/CMakeLists.txt#L47).
Owner

I was also surprised by a static library. But the reason is clear: the library is linked not only in Clock Applet, but also to SystemTray applet.

Ok, then it makes sense to have a separate library. On the phone it was impossible to quickly check for other usage

> I was also surprised by a static library. But the reason is clear: the library is linked not only in Clock Applet, but also to [SystemTray applet](src/kicker/applets/systemtray/CMakeLists.txt#L47). Ok, then it makes sense to have a separate library. On the phone it was impossible to quickly check for other usage
Collaborator

Hello!

No luck, the build log at: http://sprunge.us/7C3c11

Hello! No luck, the build log at: http://sprunge.us/7C3c11
SlavekB force-pushed fix/kicker-clock-build-dependency from 6f1adfb915 to 69a717dc30 9 months ago
Poster
Owner

Ok, so there is no need to add explicit dependence but to edit linking. Where linking automatically ensures the necessary dependence.

You can try a new version of patch.

Ok, so there is no need to add explicit dependence but to edit linking. Where linking automatically ensures the necessary dependence. You can try a new version of patch.
Collaborator

Hi @SlavekB!

Sorry for the delay,

It gives error applying the new version of the patch, I paste here because the errors and the build log is long, part of it:

[ 62%] Linking CXX shared module clock_panelapplet.so
cd /usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/applets/clock && /usr/pkg/cmake_3.20.2_amd64-1@devel/
usr/bin/cmake -E cmake_link_script CMakeFiles/clock_panelapplet-module.dir/link.txt --verbose=1
/bin/c++ -fPIC  -fdebug-prefix-map=/usr/src/qi/build/tdebase-trinity-14.0.10=. -fmacro-prefix-map=/usr/src/qi/b
uild/tdebase-trinity-14.0.10=. -fvisibility=hidden -fvisibility-inlines-hidden  -DQT_NO_ASCII_CAST -DQT_CLEAN_N
AMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/tqt3 -I
/usr/include/tqt -include tqt.h -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRAN
SLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -DNDEBUG  -Wl,--no-undefined -shared  -o clock_panelapp
let.so CMakeFiles/clock_panelapplet-module.dir/init.cpp.o   -L/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/k
icker/libkicker  -Wl,-rpath,/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/libkicker: libclock_panelapp
let.a
/bin/ld: CMakeFiles/clock_panelapplet-module.dir/init.cpp.o: in function `init':
init.cpp:(.text+0x14): undefined reference to `TDEGlobal::locale()'
/bin/ld: init.cpp:(.text+0x2a): undefined reference to `TQString::TQString(char const*)'
/bin/ld: init.cpp:(.text+0x39): undefined reference to `TDELocale::insertCatalogue(TQString const&)'
/bin/ld: init.cpp:(.text+0x45): undefined reference to `TQString::~TQString()'
/bin/ld: init.cpp:(.text+0x4a): undefined reference to `TDEGlobal::locale()'
/bin/ld: init.cpp:(.text+0x60): undefined reference to `TQString::TQString(char const*)'
/bin/ld: init.cpp:(.text+0x6f): undefined reference to `TDELocale::insertCatalogue(TQString const&)'
/bin/ld: init.cpp:(.text+0x7b): undefined reference to `TQString::~TQString()'
/bin/ld: init.cpp:(.text+0xc3): undefined reference to `TQString::~TQString()'
/bin/ld: init.cpp:(.text+0xdd): undefined reference to `TQString::~TQString()'
/bin/ld: CMakeFiles/clock_panelapplet-module.dir/init.cpp.o:(.data.rel.ro._ZTV7TQGList[_ZTV7TQGList]+0x18): undefined reference to `TQGList::clear()'
/bin/ld: CMakeFiles/clock_panelapplet-module.dir/init.cpp.o:(.data.rel.ro._ZTV7TQGList[_ZTV7TQGList]+0x30): undefined reference to `TQPtrCollection::newItem(void*)'
[..]
Hi @SlavekB! Sorry for the delay, It gives error applying the new version of the patch, I paste here because the errors and the build log is long, part of it: ``` [ 62%] Linking CXX shared module clock_panelapplet.so cd /usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/applets/clock && /usr/pkg/cmake_3.20.2_amd64-1@devel/ usr/bin/cmake -E cmake_link_script CMakeFiles/clock_panelapplet-module.dir/link.txt --verbose=1 /bin/c++ -fPIC -fdebug-prefix-map=/usr/src/qi/build/tdebase-trinity-14.0.10=. -fmacro-prefix-map=/usr/src/qi/b uild/tdebase-trinity-14.0.10=. -fvisibility=hidden -fvisibility-inlines-hidden -DQT_NO_ASCII_CAST -DQT_CLEAN_N AMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/tqt3 -I /usr/include/tqt -include tqt.h -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRAN SLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -DNDEBUG -Wl,--no-undefined -shared -o clock_panelapp let.so CMakeFiles/clock_panelapplet-module.dir/init.cpp.o -L/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/k icker/libkicker -Wl,-rpath,/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/libkicker: libclock_panelapp let.a /bin/ld: CMakeFiles/clock_panelapplet-module.dir/init.cpp.o: in function `init': init.cpp:(.text+0x14): undefined reference to `TDEGlobal::locale()' /bin/ld: init.cpp:(.text+0x2a): undefined reference to `TQString::TQString(char const*)' /bin/ld: init.cpp:(.text+0x39): undefined reference to `TDELocale::insertCatalogue(TQString const&)' /bin/ld: init.cpp:(.text+0x45): undefined reference to `TQString::~TQString()' /bin/ld: init.cpp:(.text+0x4a): undefined reference to `TDEGlobal::locale()' /bin/ld: init.cpp:(.text+0x60): undefined reference to `TQString::TQString(char const*)' /bin/ld: init.cpp:(.text+0x6f): undefined reference to `TDELocale::insertCatalogue(TQString const&)' /bin/ld: init.cpp:(.text+0x7b): undefined reference to `TQString::~TQString()' /bin/ld: init.cpp:(.text+0xc3): undefined reference to `TQString::~TQString()' /bin/ld: init.cpp:(.text+0xdd): undefined reference to `TQString::~TQString()' /bin/ld: CMakeFiles/clock_panelapplet-module.dir/init.cpp.o:(.data.rel.ro._ZTV7TQGList[_ZTV7TQGList]+0x18): undefined reference to `TQGList::clear()' /bin/ld: CMakeFiles/clock_panelapplet-module.dir/init.cpp.o:(.data.rel.ro._ZTV7TQGList[_ZTV7TQGList]+0x30): undefined reference to `TQPtrCollection::newItem(void*)' [..] ```
SlavekB force-pushed fix/kicker-clock-build-dependency from 69a717dc30 to 03c4c61f7b 8 months ago
Poster
Owner

The previous mentioned problem should be fixed in the updated patch.

The previous mentioned problem should be fixed in the updated patch.
Collaborator

The previous mentioned problem should be fixed in the updated patch.

Yes, and now it gives the following error(s):

[ 62%] Linking CXX shared module clock_panelapplet.so
cd /usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/applets/clock && /usr/pkg/cmake_3.20.2_amd64-1@devel/usr/bin/cmake -E cmake_link_script CMakeFiles/clock_panelapplet-module.dir/link.txt --verbose=1
/bin/c++ -fPIC  -fdebug-prefix-map=/usr/src/qi/build/tdebase-trinity-14.0.10=. -fmacro-prefix-map=/usr/src/qi/build/tdebase-trinity-14.0.10=. -fvisibility=hidden -fvisibility-inlines-hidden  -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/tqt3 -I/usr/include/tqt -include tqt.h -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -DNDEBUG  -Wl,--no-undefined -shared  -o clock_panelapplet.so CMakeFiles/clock_panelapplet-module.dir/init.cpp.o   -L/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/libkicker  -Wl,-rpath,/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/libkicker:/opt/trinity/lib64: /opt/trinity/lib64/libtdecore.so.14.0.0 libclock_panelapplet.a /opt/trinity/lib64/libDCOP.so.14.0.0 /opt/trinity/lib64/libtdefx.so.14.0.0 -ltqt -ltqt-mt -lXrender -lX11 -lc -lICE -lSM -lz -lXcomposite
/bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `TDEConfigDialogSingle::TDEConfigDialogSingle(Zone*, TQWidget*, char const*, Prefs*, KDialogBase::DialogType, bool)':
clock.cpp:(.text+0x78): undefined reference to `TDEConfigDialog::TDEConfigDialog(TQWidget*, char const*, TDEConfigSkeleton*, KDialogBase::DialogType, int, KDialogBase::ButtonCode, bool)'
/bin/ld: clock.cpp:(.text+0xe3): undefined reference to `KDialog::setPlainCaption(TQString const&)'
/bin/ld: clock.cpp:(.text+0x215): undefined reference to `KColorButton::setDefaultColor(TQColor const&)'
/bin/ld: clock.cpp:(.text+0x266): undefined reference to `KColorButton::setDefaultColor(TQColor const&)'
/bin/ld: clock.cpp:(.text+0x31e): undefined reference to `KColorButton::setDefaultColor(TQColor const&)'
/bin/ld: clock.cpp:(.text+0x3d6): undefined reference to `KColorButton::setDefaultColor(TQColor const&)'
/bin/ld: clock.cpp:(.text+0x48e): undefined reference to `KColorButton::setDefaultColor(TQColor const&)'
/bin/ld: clock.cpp:(.text+0x6bf): undefined reference to `TDEConfigDialog::addPage(TQWidget*, TQString const&, TQString const&, TQString const&, bool)'
/bin/ld: clock.cpp:(.text+0x801): undefined reference to `TDEConfigDialog::~TDEConfigDialog()'
/bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `PlainClock::drawContents(TQPainter*)':
clock.cpp:(.text+0x13ef): undefined reference to `KickerSettings::transparent()'
/bin/ld: clock.cpp:(.text+0x14ae): undefined reference to `KTextShadowEngine::drawText(TQPainter&, TQRect const&, int, TQString const&, TQSize const&)'
/bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `FuzzyClock::drawContents(TQPainter*)':
clock.cpp:(.text+0x5945): undefined reference to `KickerSettings::transparent()'
/bin/ld: clock.cpp:(.text+0x5a1f): undefined reference to `KTextShadowEngine::drawText(TQPainter&, TQRect const&, int, TQString const&, TQSize const&)'
/bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `ClockApplet::ClockApplet(TQString const&, KPanelApplet::Type, int, TQWidget*, char const*)':
clock.cpp:(.text+0x5b8b): undefined reference to `KPanelApplet::KPanelApplet(TQString const&, KPanelApplet::Type, int, TQWidget*, char const*, unsigned int)'
[..]
> The previous mentioned problem should be fixed in the updated patch. Yes, and now it gives the following error(s): ``` [ 62%] Linking CXX shared module clock_panelapplet.so cd /usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/applets/clock && /usr/pkg/cmake_3.20.2_amd64-1@devel/usr/bin/cmake -E cmake_link_script CMakeFiles/clock_panelapplet-module.dir/link.txt --verbose=1 /bin/c++ -fPIC -fdebug-prefix-map=/usr/src/qi/build/tdebase-trinity-14.0.10=. -fmacro-prefix-map=/usr/src/qi/build/tdebase-trinity-14.0.10=. -fvisibility=hidden -fvisibility-inlines-hidden -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -I/usr/include/tqt3 -I/usr/include/tqt -include tqt.h -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -DNDEBUG -Wl,--no-undefined -shared -o clock_panelapplet.so CMakeFiles/clock_panelapplet-module.dir/init.cpp.o -L/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/libkicker -Wl,-rpath,/usr/src/qi/build/tdebase-trinity-14.0.10/BUILD/kicker/libkicker:/opt/trinity/lib64: /opt/trinity/lib64/libtdecore.so.14.0.0 libclock_panelapplet.a /opt/trinity/lib64/libDCOP.so.14.0.0 /opt/trinity/lib64/libtdefx.so.14.0.0 -ltqt -ltqt-mt -lXrender -lX11 -lc -lICE -lSM -lz -lXcomposite /bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `TDEConfigDialogSingle::TDEConfigDialogSingle(Zone*, TQWidget*, char const*, Prefs*, KDialogBase::DialogType, bool)': clock.cpp:(.text+0x78): undefined reference to `TDEConfigDialog::TDEConfigDialog(TQWidget*, char const*, TDEConfigSkeleton*, KDialogBase::DialogType, int, KDialogBase::ButtonCode, bool)' /bin/ld: clock.cpp:(.text+0xe3): undefined reference to `KDialog::setPlainCaption(TQString const&)' /bin/ld: clock.cpp:(.text+0x215): undefined reference to `KColorButton::setDefaultColor(TQColor const&)' /bin/ld: clock.cpp:(.text+0x266): undefined reference to `KColorButton::setDefaultColor(TQColor const&)' /bin/ld: clock.cpp:(.text+0x31e): undefined reference to `KColorButton::setDefaultColor(TQColor const&)' /bin/ld: clock.cpp:(.text+0x3d6): undefined reference to `KColorButton::setDefaultColor(TQColor const&)' /bin/ld: clock.cpp:(.text+0x48e): undefined reference to `KColorButton::setDefaultColor(TQColor const&)' /bin/ld: clock.cpp:(.text+0x6bf): undefined reference to `TDEConfigDialog::addPage(TQWidget*, TQString const&, TQString const&, TQString const&, bool)' /bin/ld: clock.cpp:(.text+0x801): undefined reference to `TDEConfigDialog::~TDEConfigDialog()' /bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `PlainClock::drawContents(TQPainter*)': clock.cpp:(.text+0x13ef): undefined reference to `KickerSettings::transparent()' /bin/ld: clock.cpp:(.text+0x14ae): undefined reference to `KTextShadowEngine::drawText(TQPainter&, TQRect const&, int, TQString const&, TQSize const&)' /bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `FuzzyClock::drawContents(TQPainter*)': clock.cpp:(.text+0x5945): undefined reference to `KickerSettings::transparent()' /bin/ld: clock.cpp:(.text+0x5a1f): undefined reference to `KTextShadowEngine::drawText(TQPainter&, TQRect const&, int, TQString const&, TQSize const&)' /bin/ld: libclock_panelapplet.a(clock.cpp.o): in function `ClockApplet::ClockApplet(TQString const&, KPanelApplet::Type, int, TQWidget*, char const*)': clock.cpp:(.text+0x5b8b): undefined reference to `KPanelApplet::KPanelApplet(TQString const&, KPanelApplet::Type, int, TQWidget*, char const*, unsigned int)' [..] ```
SlavekB force-pushed fix/kicker-clock-build-dependency from 03c4c61f7b to fa29398eac 8 months ago
Poster
Owner

Ok, the previous mentioned problem should be fixed in the updated patch.

Ok, the previous mentioned problem should be fixed in the updated patch.
Collaborator

The latest patch does not work. It works if we change the last part of the patch from:

LINK kickermain-shared clock_panelapplet-static

To:

LINK kickermain-shared clock_panelapplet-static kickermain

That resolves my build issue using Ninja, and also it works with GNU Make.

The latest patch does not work. It works if we change the last part of the patch from: `LINK kickermain-shared clock_panelapplet-static` To: `LINK kickermain-shared clock_panelapplet-static kickermain` That resolves my build issue using Ninja, and also it works with GNU Make.
Poster
Owner

However, this solution is definitely wrong because there does not make sense to be linked to kickermain-shared as CMake target and at the same time to kickermain as any shared library. So it will require further research.

However, this solution is definitely wrong because there does not make sense to be linked to `kickermain-shared` as CMake target and at the same time to `kickermain` as *any shared library*. So it will require further research.
SlavekB changed title from Add missing build dependency for kicker clock applet. to WIP: Add missing build dependency for kicker clock applet. 8 months ago
SlavekB added the
PR/wip
label 8 months ago
Owner

However, these solution is definitely wrong because there does not make sense to be linked to kickermain-shared as CMake target and at the same time to kickermain as any shared library. So it will require further research.

Yeah, I had exactly the same thought. There must be something else going on.

> However, these solution is definitely wrong because there does not make sense to be linked to `kickermain-shared` as CMake target and at the same time to `kickermain` as *any shared library*. So it will require further research. Yeah, I had exactly the same thought. There must be something else going on.
Collaborator

Yes, I understand.

For now, I am using it in Dragora -current because it solves building with Ninja (which speeds up the tdebase build)...

Yes, I understand. For now, I am using it in Dragora -current because it solves building with Ninja (which speeds up the tdebase build)...
SlavekB removed this from the R14.0.11 release milestone 4 months ago
SlavekB added the
PR/not-ok
label 3 months ago
SlavekB removed review request for selk 3 months ago
Poster
Owner

Because it needs more research and finding a problem somewhere else, I labeled it like NOT-OK and canceled a request for review.

Because it needs more research and finding a problem _somewhere else_, I labeled it like NOT-OK and canceled a request for review.
Owner

@selk could you also update us on this?

@selk could you also update us on this?
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This pull request currently doesn't have any dependencies.

Loading…
There is no content yet.