------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the
assignee.
http://bug
s.kde.org/show_bug.cgi?id=139624
Summary: 0.9.0 needs patches to compile with KDE
3.2
Product: digikam
Version: 0.9.0
Platform: unspecified
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: general
AssignedTo: digikam-devel kde org
ReportedBy: moritz klingholz de
Version: 0.9.0 (using KDE 3.2.1, SuSE)
Compiler: gcc version 3.3.3 (SuSE Linux)
OS: Linux (i686) release
2.6.5-7.155.29-default
digikam-0.9.0 installed on my partially updated SuSE 9.1
with KDE 3.2.1 only after applying the following patches to
eliminate the following four errors and after ignoring a
couple of warnings about visibility. Since source seems to
be preparted for use with KDE < 3.3 and since
dependencies section in README states "KDE >=
3.x" this behaviour might be a bug.
I was using SuSE 9.1, KDE 3.2.1, gcc-3.3.3-41 (SuSE),
sqlite-3.3.8, exiv2-0.12, libkexif-0.2.5, libgphoto2-2.3.1,
libkipi-0.1.4, kipi-plugins-0.1.2, liblcms-1.15-30 (SuSE),
libtiff-3.6.1-38.26 (SuSE), libpng-1.2.14, digikam-0.9.0,
digikamimageplugins-0.9.0.
The first error is due to
digikam/libs/dialogs/deletedialog.cpp using member 'del'
from class 'KStdGuiItem' and using 'setButtonGuiItem'
introduced with KDE 3.3. This can be patched by rolling-in a
line of code from KDE 3.3 and using an alternative function
from earlier KDE version.
The second error is due to digikam/digikam/digikamapp.cpp
using member 'synchronousRun' from class 'KIO::NetAccess'
introduced with KDE 3.4. Since I do not understand the code
I took a brute force approach and rolled-in quite some code
from KDE 3.4. A better patch should be possible when
understanding what 'synchronousRun' is used for.
The next two errors I found onyl after patching the first
two.
The thrid error is about two undefined references in
libkipi.so when linking digicam. Since I could not figure
out what to do I instructed the linker to ignore this error.
Now I'm waiting for digikam to crash
The last error is due to
digikam/imageplugins/imageeffect_hsl.cpp using undefined
'setXValue' and 'setYValue'. The API documentation does not
mention when these have been introduced. I replaced them
with 'setValues' and 'xVaule' and 'yValue' from KDE 3.2.
Since I do not understand what the code does some body would
need to check if this patch really works.
Note that I also had to patch
kipi-plugins-0.1.2/kipi-plugins/htmlexport/generator.cpp by
adding '#include <qimage.h>' to solve an error about
'QImage' having incomplete definition.
[...]
make[4]: Entering directory
`/usr/src/digikam-0.9.0/digikam/libs/dialogs'
if /bin/sh ../../../libtool --silent --tag=CXX
--mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../..
-I../../../digikam/libs/dimg -I../../../digikam/digikam
-I../../../digikam/libs/dimg/filters
-I../../../digikam/libs/widgets/common
-I../../../digikam/libs/widgets/metadata
-I../../../digikam/libs/widgets/iccprofiles
-I../../../digikam/libs/widgets/imageplugins
-I../../../digikam/utilities/imageeditor/canvas
-I/opt/kde3/include -I/usr/lib/qt3/include
-I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT
-Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500
-D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts
-Wall -W -Wpointer-arith -O2 -Wformat-security
-Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common
-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -MT
deletedialog.lo -MD -MP -MF
".deps/deletedialog.Tpo" -c -o deletedialog.lo
deletedialog.cpp;
then mv -f ".deps/deletedialog.Tpo"
".deps/deletedialog.Plo"; else rm -f
".deps/deletedialog.Tpo"; exit 1; fi
deletedialog.cpp: In member function `void
Digikam: eleteDia
log::slotShouldDelete(bool)':
deletedialog.cpp:234: error: 'class KStdGuiItem' has no
member named 'del'
deletedialog.cpp:234: error: `setButtonGuiItem' undeclared
(first use this
function)
deletedialog.cpp:234: error: (Each undeclared identifier is
reported only once
for each function it appears in.)
make[4]: [deletedialog.lo] Error 1 (ignored)
[...]
*** deletedialog.cpp 2006-12-17 11:13:08.000000000 +0100
--- deletedialog-0.9.0-mdk01.cpp 2007-01-03
21:14:46.088423288 +0100
***************
*** 231,237 ****
--- 231,243 ----
// This is called once from constructor, and then when
the user changed the checkbox state.
// In that case, save the user's preference.
m_saveShouldDeleteUserPreference = true;
+ #if KDE_VERSION >= KDE_MAKE_VERSION(3,3,0)
setButtonGuiItem(Ok, shouldDelete ? KStdGuiItem::del()
: m_trashGuiItem);
+ #else
+ // Use setButtonOK( KGuiItem ) from KDE 3.2 instead of
setButtonGuiItem( Ok, KGuiItem ) from KDE 3.3.
+ // Roll-in definition of KStdGuiItem::del() from KDE
3.3 (kstdguiitem.cpp line 218).
+ setButtonOK( shouldDelete ? KGuiItem( i18n(
"&Delete" ), "editdelete", i18n(
"Delete item(s)" ) ) : m_trashGuiItem);
+ #endif
}
void DeleteDialog::presetDeleteMode(DeleteDialogMode: eleteMod
e mode)
[...]
make[3]: Entering directory
`/usr/src/digikam-0.9.0/digikam/digikam'
if /bin/sh ../../libtool --silent --tag=CXX --mode=compile
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../digikam/sqlite
-I../../digikam/libs/histogram -I../../digikam/libs/levels
-I../../digikam/libs/curves -I../../digikam/libs/themeengine
-I../../digikam/libs/widgets/common
-I../../digikam/libs/thumbbar -I../../digikam/libs/jpegutils
-I../../digikam/libs/dcraw -I../../digikam/libs/dimg
-I../../digikam/libs/dmetadata
-I../../digikam/libs/imageproperties
-I../../digikam/libs/threadimageio
-I../../digikam/libs/dialogs
-I../../digikam/utilities/cameragui
-I../../digikam/utilities/imageeditor/editor
-I../../digikam/utilities/imageeditor/canvas
-I../../digikam/utilities/splashscreen
-I../../digikam/utilities/setup -I../../digikam/
-I../../digikam/libs/dialogs -I/opt/kde3/include
-I/opt/kde3/include -I/usr/lib/qt3/include
-I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT
-Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500
-D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscri
pts -Wall -W -Wpointer-arith -O2 -Wformat-security
-Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common
-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -MT
digikamapp.lo -MD -MP -MF ".deps/digikamapp.Tpo"
-c -o digikamapp.lo digikamapp.cpp;
then mv -f ".deps/digikamapp.Tpo"
".deps/digikamapp.Plo"; else rm -f
".deps/digikamapp.Tpo"; exit 1; fi
[...]
digikamapp.cpp: In member function `void
Digikam: igikamAp
p::slotDownloadImages()':
digikamapp.cpp:1179: error: 'class KIO::NetAccess' has no
member named '
synchronousRun'
make[3]: [digikamapp.lo] Error 1 (ignored)
[...]
*** digikamapp.h 2006-12-17 11:13:08.000000000 +0100
--- digikamapp-0.9.0-mdk01.h 2007-01-03
23:18:59.000000000 +0100
***************
*** 126,131 ****
--- 126,136 ----
void loadPlugins();
void loadCameras();
void populateThemes();
+ #if KDE_VERSION < KDE_MAKE_VERSION(3,4,0)
+ void synchronousRunInternal( KIO::Job*, QWidget* );
+ void enter_loop();
+ #endif
+
private slots:
*** digikamapp.cpp 2006-12-17 11:13:08.000000000 +0100
--- digikamapp-0.9.0-mdk01.cpp 2007-01-04
01:21:32.162557888 +0100
***************
*** 92,97 ****
--- 92,103 ----
#include "digikamapp.h"
#include "digikamapp.moc"
+ #if KDE_VERSION < KDE_MAKE_VERSION(3,4,0)
+ // Use private modal functions from QT.
+ // As suggested by Hamish Rodda there must be a cleaner
way.
+ #include <private/qapplication_p.h>
+ #endif
+
using KIO::Job;
using KIO::UDSEntryList;
using KIO::UDSEntry;
***************
*** 1168,1173 ****
--- 1174,1210 ----
}
}
+ #if KDE_VERSION < KDE_MAKE_VERSION(3,4,0)
+ // Roll-in selected code for
KIO::NetAccess::synchronousRun from KDE 3.4.
+ // Checking actual usage should lead to a simpler
solution.
+ void DigikamApp::synchronousRunInternal( Job* job,
QWidget* window )
+ {
+ job->setWindow( window );
+ connect( job, SIGNAL( result (KIO::Job *) ),
+ this, SLOT( slotResult (KIO::Job *) ) );
+ QMetaObject *meta = job->metaObject();
+ static const char dataSignal[] =
"data(KIO::Job*,const QByteArray&)";
+ if ( meta->findSignal( dataSignal ) != -1 ) {
+ connect( job, SIGNAL(data(KIO::Job*,const
QByteArray&)),
+ this, SLOT(slotData(KIO::Job*,const
QByteArray&)) );
+ }
+ static const char redirSignal[] =
"redirection(KIO::Job*,const KURL&)";
+ if ( meta->findSignal( redirSignal ) != -1 ) {
+ connect( job, SIGNAL(redirection(KIO::Job*,const
KURL&)),
+ this, SLOT(slotRedirection(KIO::Job*,
const KURL&)) );
+ }
+ enter_loop();
+ }
+ void DigikamApp::enter_loop()
+ {
+ QWidget dummy(0,0,WType_Dialog | WShowModal);
+ dummy.setFocusPolicy( QWidget::NoFocus );
+ qt_enter_modal(&dummy);
+ qApp->enter_loop();
+ qt_leave_modal(&dummy);
+ }
+ #endif
+
void DigikamApp::slotDownloadImages()
{
if (mCameraGuiPath.isNull())
***************
*** 1176,1182 ****
--- 1213,1226 ----
// Fetch the contents of the device. This is needed to
make sure that the
// media:/device gets mounted.
KIO::ListJob *job = KIO::listDir(KURL(mCameraGuiPath),
false, false);
+ #if KDE_VERSION < KDE_MAKE_VERSION(3,4,0)
+ // Avoid synchronousRun from KDE 3.4 by using a
stripped version as private function.
+ // Checking actual usage should lead to a simpler
solution.
+ synchronousRunInternal(job,0);
+ #else
KIO::NetAccess::synchronousRun(job,0);
+ #endif
+
QString localUrl = convertToLocalUrl(mCameraGuiPath);
DDebug() << "slotDownloadImages:
convertToLocalUrl " << mCameraGuiPath <<
" to " << localUrl << endl;
[...]
make[3]: Entering directory
`/usr/src/digikam-0.9.0/digikam/digikam'
/bin/sh ../../libtool --silent --tag=CXX --mode=link g++
-Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500
-D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts
-Wall -W -Wpointer-arith -O2 -Wformat-security
-Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common
-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE
-o digikam -R /opt/kde3/lib -R /opt/kde3/lib -R
/usr/lib/qt3/lib -R /usr/X11R6/lib -L/opt/kde3/lib
-L/usr/lib/qt3/lib -L/usr/X11R6/lib -lkutils main.o
-lqt-mt -lz -lpng -lz -lm -lXext -lX11 -lSM -lICE
-lpthread -lkdecore -lkdeui -lkio -lkparts -lkutils
libdigikam.la
/opt/kde3/lib/libkipi.so: undefined reference to
`KIPI::ImageCollection::operator==(KIPI::ImageCollection
const&) const'
/opt/kde3/lib/libkipi.so: undefined reference to
`KIPI::ImageCollection::operator=(KIPI::ImageCollection
const&)'
collect2: ld returned 1 exit status
make[3]: [digikam] Error 1 (ignored)
[...]
No patch, add '-Wl,--allow-shlib-undefined' to ignore error
but expect digikam to crash.
[...]
make[3]: Entering directory
`/usr/src/digikam-0.9.0/digikam/imageplugins'
if /bin/sh ../../libtool --silent --tag=CXX --mode=compile
g++ -DHAVE_CONFIG_H -I. -I. -I../..
-I../../digikam/utilities/imageeditor/editor
-I../../digikam/utilities/imageeditor/canvas
-I../../digikam/libs/histogram -I../../digikam/libs/levels
-I../../digikam/libs/curves
-I../../digikam/libs/widgets/common
-I../../digikam/libs/widgets/iccprofiles
-I../../digikam/libs/widgets/imageplugins
-I../../digikam/libs/dialogs -I../../digikam/libs/dimg
-I../../digikam/libs/dmetadata
-I../../digikam/libs/dimg/filters -I../../digikam/digikam
-I/opt/kde3/include -I/usr/lib/qt3/include
-I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT
-Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500
-D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts
-Wall -W -Wpointer-arith -O2 -Wformat-security
-Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common
-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE
-MT imageeffect_hsl.lo -MD -MP -MF
".deps/imageeffect_hsl.Tpo" -c -o
imageeffect_hsl.lo imageeffect_hsl.cpp;
then mv -f ".deps/imageeffect_hsl.Tpo"
".deps/imageeffect_hsl.Plo"; else rm -f
".deps/imageeffect_hsl.Tpo"; exit 1; fi
imageeffect_hsl.cpp: In member function `void
DigikamImagesPluginCore::ImageEffect_HSL::slotHChanged(doubl
e)':
imageeffect_hsl.cpp:300: error: `setXValue' undeclared
(first use this
function)
imageeffect_hsl.cpp:300: error: (Each undeclared identifier
is reported only
once for each function it appears in.)
imageeffect_hsl.cpp: In member function `void
DigikamImagesPluginCore::ImageEffect_HSL::slotSChanged(doubl
e)':
imageeffect_hsl.cpp:309: error: `setYValue' undeclared
(first use this
function)
make[3]: [imageeffect_hsl.lo] Error 1 (ignored)
[...]
*** imageeffect_hsl.cpp 2006-12-17 11:13:08.000000000 +0100
--- imageeffect_hsl-0.9.0-mdk01.cpp 2007-01-05
01:07:10.990028864 +0100
***************
*** 297,303 ****
--- 297,307 ----
hue = int(h) + 359;
m_HSSelector->blockSignals(true);
+ #if KDE_VERSION >= KDE_MAKE_VERSION(3,3,0)
m_HSSelector->setXValue(hue);
+ #else
+ m_HSSelector->setValues( hue,
m_HSSelector->yValue() );
+ #endif
m_HSSelector->blockSignals(false);
}
***************
*** 306,312 ****
--- 310,320 ----
int sat = (int)((s + 100.0) * (255.0/200.0));
m_HSSelector->blockSignals(true);
+ #if KDE_VERSION >= KDE_MAKE_VERSION(3,3,0)
m_HSSelector->setYValue(sat);
+ #else
+ m_HSSelector->setValues( m_HSSelector->xValue(),
sat );
+ #endif
m_HSSelector->blockSignals(false);
}
_______________________________________________
Digikam-devel mailing list
Digikam-devel kde.org
h
ttps://mail.kde.org/mailman/listinfo/digikam-devel
|