Summary: | Build failed against libkipi 2.0.0 | ||
---|---|---|---|
Product: | [Applications] kphotoalbum | Reporter: | nucleo <nucleo> |
Component: | general | Assignee: | KPhotoAlbum Bugs <kpabugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | blackie, caulier.gilles, cfeck, creffett, dodonvictor, echidnaman, johannes, kde, matthias, miika.turkia, plinnell, rdieter |
Priority: | NOR | ||
Version: | 4.2 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kphotoalbum/c47ce5ad1a34917d611c4b1faa0e3da8d2f45237 | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: | quick-n-dirty patch for new libkdcraw api |
Description
nucleo
2012-09-21 10:35:14 UTC
Can you try out the 4.3-beta1? There is a fix to compile on KDE 4.9 that might do the trick for libkipi 2.0.0 also. (MarbleGlobal.h warning still remains but the errors are hopefully resolved.) http://download.kde.org/unstable/kphotoalbum/4.3-beta1/src/kphotoalbum-4.3-beta1.tar.bz2 that one fails too, In file included from /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.cpp:21:0: /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.h:53:35: error: 'KIPI::TimeSpec' has not been declared /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.h:54:56: error: 'KIPI::TimeSpec' has not been declared /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.cpp:186:43: error: 'QDateTime Plugins::ImageInfo::time' is not a static member of 'class Plugins::ImageInfo' /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.cpp:186:37: error: 'TimeSpec' is not a member of 'KIPI' /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.cpp:186:37: note: suggested alternative: In file included from /usr/include/QtCore/qbytearray.h:46:0, from /usr/include/QtCore/qstring.h:46, from /usr/include/QtCore/QString:1, from /usr/include/kde4/libkipi/imageinfoshared.h:39, from /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.h:23, from /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.cpp:21: /usr/include/QtCore/qnamespace.h:1404:10: note: 'Qt::TimeSpec' /builddir/build/BUILD/kphotoalbum-4.3-beta1/Plugins/ImageInfo.cpp:187:1: error: expected ',' or ';' before '{' token make[2]: *** [CMakeFiles/kphotoalbum.dir/Plugins/ImageInfo.o] Error 1 make[2]: Leaving directory `/builddir/build/BUILD/kphotoalbum-4.3-beta1/i686-redhat-linux-gnu' make[1]: Leaving directory `/builddir/build/BUILD/kphotoalbum-4.3-beta1/i686-redhat-linux-gnu' make: Leaving directory `/builddir/build/BUILD/kphotoalbum-4.3-beta1/i686-redhat-linux-gnu' make[1]: *** [CMakeFiles/kphotoalbum.dir/all] Error 2 See libkipi fixes for gwenview and ksnapshot: http://quickgit.kde.org/index.php?p=gwenview.git&a=commitdiff&h=06561d86968d2cc2e3e5b486e054eb3f11a22caa http://quickgit.kde.org/index.php?p=ksnapshot.git&a=commitdiff&h=9056a8ceb9b96359eaacaa86bdbfdb8e23dc2575 Seems that the KIPI interfaces have changed quite a bit more than that. Following code fails with the error message underneath: KIPI::ConfigWidget* _pluginConfig; _pluginConfig = KIPI::PluginLoader::instance()->configWidget( this ); lay1->addWidget( _pluginConfig ); /opt/kpa/kpa-git/kphotoalbum/Settings/PluginsPage.cpp: In constructor ‘Settings::PluginsPage::PluginsPage(QWidget*)’: /opt/kpa/kpa-git/kphotoalbum/Settings/PluginsPage.cpp:39:36: error: no matching function for call to ‘QVBoxLayout::addWidget(KIPI::ConfigWidget*&)’ /opt/kpa/kpa-git/kphotoalbum/Settings/PluginsPage.cpp:39:36: note: candidate is: /usr/include/qt4/QtGui/qboxlayout.h:85:10: note: void QBoxLayout::addWidget(QWidget*, int, Qt::Alignment) /usr/include/qt4/QtGui/qboxlayout.h:85:10: note: no known conversion for argument 1 from ‘KIPI::ConfigWidget*’ to ‘QWidget*’ /opt/kpa/kpa-git/kphotoalbum/Settings/PluginsPage.cpp: In member function ‘void Settings::PluginsPage::saveSettings(Settings::SettingsData*)’: /opt/kpa/kpa-git/kphotoalbum/Settings/PluginsPage.cpp:47:18: error: invalid use of incomplete type ‘struct KIPI::ConfigWidget’ /opt/kpa/kpa-git/kphotoalbum/Settings/PluginsPage.h:22:24: error: forward declaration of ‘struct KIPI::ConfigWidget’ make[2]: *** [CMakeFiles/kphotoalbum.dir/Settings/PluginsPage.o] Error 1 make[1]: *** [CMakeFiles/kphotoalbum.dir/all] Error 2 make: *** [all] Error 2 Miika, This is another problem. Here we talk about FindKIPI.cake script, not C++ interface, which have changed indeep of course due to this project : http://community.kde.org/Digikam/GSoC2012#Porting_Libkipi_and_KIPI-Plugins_to_KDE_XML-GUI I see a mail from Jesper to The student in charge of the project to provide a patch for KPhotoAlbum Gilles Caulier I get the described error message after doing the suggested fix to start using the new libkipi API. > I see a mail from Jesper to The student in charge of the project to provide a patch for KPhotoAlbum
What is the status of the patch?
*** Bug 310593 has been marked as a duplicate of this bug. *** Could you try the kipi branch at https://github.com/jzarl/kphotoalbum/tree/kipi and report your results? Compile issues are definitely fixed, but I currently lack a test system with the newest kipi-plugins installed. Builds (as expected), but runs in to a crash shortly after startup: Application: KPhotoAlbum (kphotoalbum), signal: Segmentation fault Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7f431642f800 (LWP 22127))] Thread 4 (Thread 0x7f430115f700 (LWP 22137)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:168 #1 0x00007f431371404b in wait (time=18446744073709551615, this=0x23bc540) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x23b80c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158 #3 0x00000000004f0e3a in ImageManager::AsyncLoader::next (this=0x23b8090) at /tmp/kphotoalbum/ImageManager/AsyncLoader.cpp:127 #4 0x00000000004f063b in ImageManager::ImageLoaderThread::run (this=0x239c460) at /tmp/kphotoalbum/ImageManager/ImageLoaderThread.cpp:56 #5 0x00007f4313713aec in QThreadPrivate::start (arg=0x239c460) at thread/qthread_unix.cpp:338 #6 0x00007f431197ef9f in start_thread (arg=0x7f430115f700) at pthread_create.c:311 #7 0x00007f4311c8b0cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114 Thread 3 (Thread 0x7f430095e700 (LWP 22138)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:168 #1 0x00007f431371404b in wait (time=18446744073709551615, this=0x23bc540) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<optimized out>, mutex=0x23b80c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158 #3 0x00000000004f0e3a in ImageManager::AsyncLoader::next (this=0x23b8090) at /tmp/kphotoalbum/ImageManager/AsyncLoader.cpp:127 #4 0x00000000004f063b in ImageManager::ImageLoaderThread::run (this=0x23cfb80) at /tmp/kphotoalbum/ImageManager/ImageLoaderThread.cpp:56 #5 0x00007f4313713aec in QThreadPrivate::start (arg=0x23cfb80) at thread/qthread_unix.cpp:338 #6 0x00007f431197ef9f in start_thread (arg=0x7f430095e700) at pthread_create.c:311 #7 0x00007f4311c8b0cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114 Thread 2 (Thread 0x7f42f32de700 (LWP 22141)): #0 0x00007f4311c7f44d in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f430dd18d64 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f430dd18e84 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f431383ec16 in QEventDispatcherGlib::processEvents (this=0x7f42ec0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #4 0x00007f431380f2bf in QEventLoop::processEvents (this=this@entry=0x7f42f32ddd50, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007f431380f548 in QEventLoop::exec (this=0x7f42f32ddd50, flags=...) at kernel/qeventloop.cpp:204 #6 0x00007f4313710b10 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501 #7 0x00007f43137ef9af in QInotifyFileSystemWatcherEngine::run (this=0x2512c10) at io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f4313713aec in QThreadPrivate::start (arg=0x2512c10) at thread/qthread_unix.cpp:338 #9 0x00007f431197ef9f in start_thread (arg=0x7f42f32de700) at pthread_create.c:311 #10 0x00007f4311c8b0cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114 Thread 1 (Thread 0x7f431642f800 (LWP 22127)): [KCrash Handler] #6 QString::operator= (this=0x72006500730097, other=...) at tools/qstring.cpp:1411 #7 0x00007f42f21fbda9 in KIPI::Plugin::setUiBaseName (this=0x2566860, name=<optimized out>) at ../../libkipi/plugin.cpp:309 #8 0x00007f42f26b0bbf in ?? () from /usr/lib/kde4/kipiplugin_ipodexport.so #9 0x00007f42f26b10b7 in ?? () from /usr/lib/kde4/kipiplugin_ipodexport.so #10 0x00007f4313d6b2a5 in KPluginFactory::create (this=0x2687b20, iface=0x7f43156f20e0 "KIPI::Plugin", parentWidget=0x0, parent=0x2269950, args=..., keyword=...) at ../../kdecore/util/kpluginfactory.cpp:203 #11 0x00007f43156e6596 in KIPI::PluginLoader::Info::plugin() const () from /usr/lib/libkipi.so.9 #12 0x00000000004e1729 in MainWindow::Window::plug (this=0x1fbd8e0) at /tmp/kphotoalbum/MainWindow/Window.cpp:1439 #13 0x00007f4313825f5f in QMetaObject::activate (sender=0x2458630, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3547 #14 0x00000000004dc7cd in MainWindow::Window::loadPlugins (this=0x1fbd8e0) at /tmp/kphotoalbum/MainWindow/Window.cpp:1408 #15 0x00007f4313825f5f in QMetaObject::activate (sender=0x22f8790, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3547 #16 0x00007f4313818987 in QMetaMethod::invoke (this=this@entry=0x7fff137605b0, object=object@entry=0x22f8790, connectionType=Qt::DirectConnection, connectionType@entry=Qt::AutoConnection, returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1664 #17 0x00007f431381ad5c in QMetaObject::invokeMethod (obj=0x22f8790, member=<optimized out>, type=Qt::AutoConnection, ret=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:1179 #18 0x00007f430ec23a2d in ?? () from /usr/lib/x86_64-linux-gnu/libdbusmenu-qt.so.2 #19 0x00007f430ec25b76 in ?? () from /usr/lib/x86_64-linux-gnu/libdbusmenu-qt.so.2 #20 0x00007f430ec25d1f in ?? () from /usr/lib/x86_64-linux-gnu/libdbusmenu-qt.so.2 #21 0x00007f431343fed3 in QDBusConnectionPrivate::deliverCall (this=this@entry=0x1de7640, object=object@entry=0x229f0f0, msg=..., metaTypes=..., slotIdx=11) at qdbusintegrator.cpp:947 #22 0x00007f4313440fd5 in QDBusConnectionPrivate::activateCall (this=this@entry=0x1de7640, object=0x229f0f0, flags=4080, msg=...) at qdbusintegrator.cpp:857 #23 0x00007f4313441677 in QDBusConnectionPrivate::activateObject (this=0x1de7640, node=..., msg=..., pathStartPos=<optimized out>) at qdbusintegrator.cpp:1443 #24 0x00007f4313441a2b in QDBusActivateObjectEvent::placeMetaCall (this=0x25012c0) at qdbusintegrator.cpp:1537 #25 0x00007f431382543e in QObject::event (this=0x229f0f0, e=<optimized out>) at kernel/qobject.cpp:1195 #26 0x00007f431293ce9c in QApplicationPrivate::notify_helper (this=this@entry=0x1d76b20, receiver=receiver@entry=0x229f0f0, e=e@entry=0x25012c0) at kernel/qapplication.cpp:4562 #27 0x00007f431294130a in QApplication::notify (this=0x7fff13761e50, receiver=0x229f0f0, e=0x25012c0) at kernel/qapplication.cpp:4423 #28 0x00007f431424e386 in KApplication::notify (this=0x7fff13761e50, receiver=0x229f0f0, event=0x25012c0) at ../../kdeui/kernel/kapplication.cpp:311 #29 0x00007f431381056e in QCoreApplication::notifyInternal (this=0x7fff13761e50, receiver=receiver@entry=0x229f0f0, event=event@entry=0x25012c0) at kernel/qcoreapplication.cpp:915 #30 0x00007f43138143f1 in sendEvent (event=0x25012c0, receiver=0x229f0f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #31 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x1d3dff0) at kernel/qcoreapplication.cpp:1539 #32 0x00007f431383ea63 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236 #33 postEventSourceDispatch (s=0x1d67340) at kernel/qeventdispatcher_glib.cpp:279 #34 0x00007f430dd18a95 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #35 0x00007f430dd18dc8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #36 0x00007f430dd18e84 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #37 0x00007f431383ebf6 in QEventDispatcherGlib::processEvents (this=0x1d3f4b0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #38 0x00007f43129e1c1e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #39 0x00007f431380f2bf in QEventLoop::processEvents (this=this@entry=0x7fff137617e0, flags=...) at kernel/qeventloop.cpp:149 #40 0x00007f431380f548 in QEventLoop::exec (this=0x7fff137617e0, flags=...) at kernel/qeventloop.cpp:204 #41 0x00007f4313814708 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187 #42 0x000000000043f711 in main (argc=1, argv=0x7fff13761f88) at /tmp/kphotoalbum/main.cpp:84 I just realised that I forgot to call KIPI::PluginLoader::init(). That has been fixed in https://github.com/jzarl/kphotoalbum/tree/kipi If that's not the reason for the crash, Bug 307775 also looks like a reasonable cause. Could you please check which exact versions of libkipi and kipi-plugins you are using? # ldd /path/to/kphotoalbum |grep kipi debian-based: # dpkg -l kipi-plugins libkipi\* rpm-based: # rpm -qa |grep kipi kipi from source: # locate libkipi |grep .so Ah, it was building against libkipi9 instead of libkipi10, so there's that... Actually, when compiling with the latest libkipi I get a compiler errror: In file included from /tmp/kphotoalbum/Plugins/Interface.cpp:25:0: /tmp/kphotoalbum/Plugins/ImageInfo.h:53:35: error: ‘KIPI::TimeSpec’ has not been declared /tmp/kphotoalbum/Plugins/ImageInfo.h:54:56: error: ‘KIPI::TimeSpec’ has not been declared Output of locate: /usr/lib/libkipi.so /usr/lib/libkipi.so.10 /usr/lib/libkipi.so.10.0.0 /usr/lib/libkipiplugins.so /usr/lib/libkipiplugins.so.3 /usr/lib/libkipiplugins.so.3.0.0 /usr/lib/debug/usr/lib/libkipi.so.10.0.0 I believe you are are trying this on branch master: https://github.com/jzarl/kphotoalbum/blob/master/Plugins/ImageInfo.h#L53 On branch "kipi", the KIPI::TimeSpec should be on line 58: https://github.com/jzarl/kphotoalbum/blob/kipi/Plugins/ImageInfo.h#L58 Ah, I forgot to "git branch kipi" after I did the clone... oops. I'm (really) building on the kipi branch this time, but it looks like it'll need to be ported to the newest libkdcraw in addition to the kipi porting: (I have libkdcraw 2.2.0, as distributed with KDE 4.9.80) [ 53%] Building CXX object CMakeFiles/kphotoalbum.dir/ImageManager/RawImageDecoder.o /tmp/kphotoalbum/ImageManager/RawImageDecoder.cpp: In member function ‘virtual bool ImageManager::RAWImageDecoder::_decode(QImage*, const DB::FileName&, QSize*, int)’: /tmp/kphotoalbum/ImageManager/RawImageDecoder.cpp:40:11: error: ‘loadDcrawPreview’ is not a member of ‘KDcrawIface::KDcraw’ Created attachment 75622 [details]
quick-n-dirty patch for new libkdcraw api
Seems newer libkdcraw simply renamed the method used here, this patch let's it build at least (wasn't able to test runtime functionality yet)
Yes, this was a simple rename. The patch seems good; using the version number to distinguish should work. So with this patch applied I guess we can push this to master? +1 to commit, to get more eyes and broader testing. (i can commit the libkdcraw part if there's no objection) Git commit ee9e93ba5be584c52d404a9c3b534cecaf11febd by Rex Dieter. Committed on 05/12/2012 at 06:21. Pushed by rdieter into branch 'master'. fix build for newer libkdcraw api M +5 -0 ImageManager/RawImageDecoder.cpp http://commits.kde.org/kphotoalbum/ee9e93ba5be584c52d404a9c3b534cecaf11febd Git commit c47ce5ad1a34917d611c4b1faa0e3da8d2f45237 by Johannes Zarl. Committed on 25/11/2012 at 18:35. Pushed by johanneszarl into branch 'master'. Basic libkipi-2.0.0 support. M +10 -1 MainWindow/Window.cpp M +1 -0 MainWindow/Window.h M +237 -89 Plugins/ImageInfo.cpp M +33 -16 Plugins/ImageInfo.h M +4 -0 Settings/PluginsPage.cpp http://commits.kde.org/kphotoalbum/c47ce5ad1a34917d611c4b1faa0e3da8d2f45237 Awesome, great work! *** Bug 313130 has been marked as a duplicate of this bug. *** *** Bug 313160 has been marked as a duplicate of this bug. *** |