Bug 139658 - Tiff generated by photoshop is either ignored by Digikam image browser, or kills digikam when regenerating the database
Summary: Tiff generated by photoshop is either ignored by Digikam image browser, or ki...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-Menus (show other bugs)
Version: 0.9.0
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-06 03:17 UTC by Ar
Modified: 2017-08-13 10:25 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.1


Attachments
backtrace for the database regeneration crash (3.15 KB, text/plain)
2007-01-06 03:19 UTC, Ar
Details
new backtrace, using exiv2 svn, digikam 9.1 svn, kipiplugins svn. (2.98 KB, text/plain)
2007-01-09 04:58 UTC, Ar
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ar 2007-01-06 03:17:57 UTC
Version:           0.9.0 (using KDE )
OS:                Linux

This Tiff file, that I generated with photoshop and appears normal to gThumb, Krita, etc, is ignored (not listed) by digikam's image browser (just throw it in one of your photo sub-folders and ask digikam to refresh)

URL: http://www.arielpablo.com.ar/unprotected-files/dsc_0006-rgb-krita-digikam-reso-fix-ps.tiff

Deleting database and reloading digikam, causes digikam to die during database regeneration. Backtrace attached in the next comment.

Trying to import the image produces a dialog box saying: "the process for the digikamalbums:// protocol died unexpectedly"
Comment 1 Ar 2007-01-06 03:19:15 UTC
Created attachment 19118 [details]
backtrace for the database regeneration crash
Comment 2 caulier.gilles 2007-01-06 08:41:26 UTC
Ari,

The crash appear in Exiv2 library. Witch Exiv2 release you use ? 0.12 or current implementation from svn ?

Gilles Caulier
Comment 3 Andreas Huggel 2007-01-06 16:21:52 UTC
Yes, this is an exiv2 bug, I can reproduce it.
http://dev.robotbattle.com/bugs/view.php?id=503

Thanks for reporting the issue.
-ahu.
Comment 4 caulier.gilles 2007-01-06 17:20:56 UTC
Thanks Andreas,

I close this file now. It's a duplicate on Exiv2 bugzilla file #503 

Gilles
Comment 5 Andreas Huggel 2007-01-07 12:11:09 UTC
Fixed with rev. 1027 in the exiv2 SVN repository.

The image appears to have an invalid IPTC dataset - a bug in the software which wrote the IPTC data? This is what exiv2 finds now:

ahuggel@mowgli> exiv2 -pi pic/dsc_0006-rgb-krita-digikam-reso-fix-ps.tiff
Warning: IPTC dataset Iptc.Application2.Preview has invalid size 943868237; skipped.
Iptc.Application2.RecordVersion              Short       1  2

-ahu.
Comment 6 caulier.gilles 2007-01-07 12:46:21 UTC
Ari,

Test check if all is right with digiKam, please following these notice :

- use the current Exiv2 source code from svn repository (not the Exiv2 0.12)
- recompile and install Exiv2
- recompile and install digiKam and kipi-plugins from svn
- restart digikam and try again.

Gilles
Comment 7 Ar 2007-01-07 16:15:05 UTC
Just did a quick test with exiv2 svn without recompiling digikam or kipiplugins yet, no change in this setup. 
I can't recompile digikam right now as I am about to finish preparing my lab prints. I'll rebuild & test digikam & kipiplugins during the week and post back the results.
Thanks for you support on this one!
Comment 8 Ar 2007-01-09 04:56:44 UTC
Hi, 

   Still having exactly the same problem with the SVN version, my PS image is a digikam crasher.

   I'll attach the new backtrace. Leaving the bug as "fixed"...

   Just to be sure, this is what I did:

    From here: http://www.exiv2.org/download.html

    I did:
    svn checkout svn://dev.robotbattle.com/exiv2/trunk .
    Then: 
make configure
./configure --prefix=/usr
make
sudo make install

(curiously, exiv2 -V still shows version 0.12, is this right?)
(I checked the creation time of /usr/bin/exiv2 and confirmed that it is the one I just built)
    
   Then I downloaded digikam & kipiplugins from SVN following this instructions:

      http://www.digikam.org/?q=download/svn

      I followed the "UNSTABLE" instructions. Now when I load Digikam, I see version 9.1 so I'm sure I'm using the new code.


------------------------

Comment 9 Ar 2007-01-09 04:58:21 UTC
Created attachment 19204 [details]
new backtrace, using exiv2 svn, digikam 9.1 svn, kipiplugins svn.
Comment 10 Andreas Huggel 2007-01-09 05:18:01 UTC
Yes, the SVN version claims to be v0.12, that's right. Maybe I should make it a habit to change that immediately after a release.

The installation process you followed (for exiv2) seems ok, but the new backtrace looks exactly like the old one. Can you please triple-check that digikam is using the newly compiled version? (e.g., remove all traces of any exiv2 installation, then only re-install it...)

Also, what happens if you just run the new exiv2 -pi <killer-image>?

-ahu.
Comment 11 Ar 2007-01-09 05:26:17 UTC
ariel@polaris:/media/hda6/Fotos/Prints$ /usr/bin/exiv2 -pi dsc_0006-rgb-krita-digikam-reso-fix-ps.tiff 
Warning: IPTC dataset Iptc.Application2.Preview has invalid size 943868237; skipped.
Iptc.Application2.RecordVersion              Short       1  2

ariel@polaris:/media/hda6/Fotos/Prints$ which exiv2
/usr/bin/exiv2

How can I make sure which exiv2 digikam is using?
Or in other words, how can I remove all traces of exiv2? is it only the /usr/bin/exiv2 executable or is there something else? Sorry to ask but I'm a newbie in the build-your-own-software business :)
Comment 12 Ar 2007-01-09 05:29:39 UTC
Please disregard the previous request. I found the old exiv2 libs in /usr/local/lib and deleted them all. Reinstalled exiv2 and now everything is working fine. No crashes in digikam anymore. Cool.

Thanks!!
Ari
Comment 13 Andreas Huggel 2007-01-09 07:33:02 UTC
Thanks for following through.

> How can I make sure which exiv2 digikam is using? 

Try ldd digikam to see which libraries are used (that shows where the library is, but still in general not necessarily which version it is).

Gilles,

There have been a few similar misunderstandings as it can be difficult for non-developer users to trace library dependencies. I suggest to add a global function std::string Exiv2::version() to exiv2 and digikam could use it in the about screen (or similar) and/or dump the info when invoked with a certain command line flag (e.g., add such output to --version).
Another alternative might be a script which uses ldd and co. to list the dependencies and extract soname info from the libraries. What do you think?

-ahu.
Comment 14 caulier.gilles 2007-01-09 07:48:30 UTC
>There have been a few similar misunderstandings as it can be difficult for non-developer >users to trace library dependencies. I suggest to add a global function std::string >Exiv2::version() to exiv2 and digikam could use it in the about screen (or similar)

Yes, i thinking the same issue since a long time. I'm doing the same way to display the libkipi version in About dialog. I will do it with Exiv2.

>Another alternative might be a script which uses ldd and co. to list the dependencies and >extract soname info from the libraries. What do you think?

This can be a simple command line to use to debug.  This command can be given in web project page and HACKING file from svn. 

Fabien, what do you think about ?

Gilles
Comment 15 caulier.gilles 2007-01-09 09:42:18 UTC
SVN commit 621602 by cgilles:

digikam from trunk : show more informations in About pannel about shared library version used : Exiv2 and Gphoto2.
CCBUGS: 139658

 M  +95 -96    Makefile.am  
 M  +25 -3     main.cpp  


--- trunk/extragear/graphics/digikam/digikam/Makefile.am #621601:621602
@@ -1,26 +1,25 @@
 METASOURCES = AUTO  
 
 INCLUDES = -I$(top_srcdir)/digikam/sqlite \
-	       -I$(top_srcdir)/digikam/libs/histogram \
-	       -I$(top_srcdir)/digikam/libs/levels \
-	       -I$(top_srcdir)/digikam/libs/curves \
-	       -I$(top_srcdir)/digikam/libs/themeengine \
-	       -I$(top_srcdir)/digikam/libs/widgets/common \
-	       -I$(top_srcdir)/digikam/libs/thumbbar \
-	       -I$(top_srcdir)/digikam/libs/jpegutils \
-	       -I$(top_srcdir)/digikam/libs/dcraw \
-	       -I$(top_srcdir)/digikam/libs/dimg \
-	       -I$(top_srcdir)/digikam/libs/dmetadata \
-	       -I$(top_srcdir)/digikam/libs/imageproperties \
-	       -I$(top_srcdir)/digikam/libs/threadimageio \
-	       -I$(top_srcdir)/digikam/libs/dialogs \
-	       -I$(top_builddir)/digikam/libs/dialogs \
-	       -I$(top_srcdir)/digikam/utilities/cameragui \
-	       -I$(top_srcdir)/digikam/utilities/imageeditor/editor \
-	       -I$(top_srcdir)/digikam/utilities/imageeditor/canvas \
-	       -I$(top_srcdir)/digikam/utilities/splashscreen \
-	       -I$(top_srcdir)/digikam/utilities/setup \
-	       $(LIBKIPI_CFLAGS) $(all_includes) 
+	   -I$(top_srcdir)/digikam/libs/histogram \
+	   -I$(top_srcdir)/digikam/libs/levels \
+	   -I$(top_srcdir)/digikam/libs/curves \
+	   -I$(top_srcdir)/digikam/libs/themeengine \
+	   -I$(top_srcdir)/digikam/libs/widgets/common \
+	   -I$(top_srcdir)/digikam/libs/thumbbar \
+	   -I$(top_srcdir)/digikam/libs/jpegutils \
+	   -I$(top_srcdir)/digikam/libs/dcraw \
+	   -I$(top_srcdir)/digikam/libs/dimg \
+	   -I$(top_srcdir)/digikam/libs/dmetadata \
+	   -I$(top_srcdir)/digikam/libs/imageproperties \
+	   -I$(top_srcdir)/digikam/libs/threadimageio \
+	   -I$(top_srcdir)/digikam/libs/dialogs \
+	   -I$(top_srcdir)/digikam/utilities/cameragui \
+	   -I$(top_srcdir)/digikam/utilities/imageeditor/editor \
+	   -I$(top_srcdir)/digikam/utilities/imageeditor/canvas \
+	   -I$(top_srcdir)/digikam/utilities/splashscreen \
+	   -I$(top_srcdir)/digikam/utilities/setup \
+	   $(LIBKIPI_CFLAGS) $(GPHOTO_CFLAGS) $(all_includes) 
 
 
 # -- shared digiKam library rules -----------------------------------------------
@@ -31,81 +30,81 @@
 # to unbreak compilation with './configure -enable-final' option. I suspect a problem with 
 # X11 header included into albumfolderview.cpp.
 libdigikam_la_SOURCES = kdateedit.cpp \
-	                    album.cpp \
-	                    albumdb.cpp \
-	                    albumdb_sqlite2.cpp \
-	                    albumiconview.cpp \
-	                    albumicongroupitem.cpp \
-	                    albumiconitem.cpp \
-	                    albumitemhandler.cpp \
-	                    albumfiletip.cpp \
-	                    albumfolderview.cpp \
-	                    albumhistory.cpp \
-	                    albumlister.cpp \
-	                    albummanager.cpp \
-	                    albumpropsedit.cpp \
-	                    albumsettings.cpp \
-	                    albumthumbnailloader.cpp \
-	                    albumwidgetstack.cpp \
-	                    batchthumbsgenerator.cpp \
-	                    cameradragobject.cpp \
-	                    cameralist.cpp \
-	                    cameratype.cpp \
-	                    datefolderview.cpp \
-	                    dcopiface.cpp \
-	                    dcopiface.skel \
-	                    digikamapp.cpp \
-	                    digikamfirstrun.cpp \
-	                    digikamview.cpp \
-	                    dio.cpp \
-	                    dragobjects.cpp \
-	                    firstrun.cpp \
-	                    folderitem.cpp \
-	                    folderview.cpp \
-	                    iconview.cpp \
-	                    icongroupitem.cpp \
-	                    iconitem.cpp \
-	                    imageattributeswatch.cpp \
-	                    imageinfo.cpp \
-	                    imagepreviewwidget.cpp \
-	                    imagepreviewview.cpp \
-	                    kdatetimeedit.cpp \
-	                    kdatepickerpopup.cpp \
-	                    kipiinterface.cpp \
-			    mediaplayerview.cpp \
-	                    monthwidget.cpp \
-	                    pixmapmanager.cpp \
-	                    ratingwidget.cpp \
-	                    scanlib.cpp \
-	                    searchadvanceddialog.cpp \
-	                    searchfolderview.cpp \
-	                    searchquickdialog.cpp \
-	                    searchresultsview.cpp \
-	                    searchresultsitem.cpp \
-	                    searchwidgets.cpp \
-	                    syncjob.cpp \
-	                    tagcreatedlg.cpp \
-	                    tagfilterview.cpp \
-	                    tagfolderview.cpp \
-	                    tagspopupmenu.cpp \
-	                    upgradedb_sqlite2tosqlite3.cpp \
-			    welcomepageview.cpp 
+	                album.cpp \
+	                albumdb.cpp \
+	                albumdb_sqlite2.cpp \
+	                albumiconview.cpp \
+	                albumicongroupitem.cpp \
+	                albumiconitem.cpp \
+	                albumitemhandler.cpp \
+	                albumfiletip.cpp \
+	                albumfolderview.cpp \
+	                albumhistory.cpp \
+	                albumlister.cpp \
+	                albummanager.cpp \
+	                albumpropsedit.cpp \
+	                albumsettings.cpp \
+	                albumthumbnailloader.cpp \
+	                albumwidgetstack.cpp \
+	                batchthumbsgenerator.cpp \
+	                cameradragobject.cpp \
+	                cameralist.cpp \
+	                cameratype.cpp \
+	                datefolderview.cpp \
+	                dcopiface.cpp \
+	                dcopiface.skel \
+	                digikamapp.cpp \
+	                digikamfirstrun.cpp \
+	                digikamview.cpp \
+	                dio.cpp \
+	                dragobjects.cpp \
+	                firstrun.cpp \
+	                folderitem.cpp \
+	                folderview.cpp \
+	                iconview.cpp \
+	                icongroupitem.cpp \
+	                iconitem.cpp \
+	                imageattributeswatch.cpp \
+	                imageinfo.cpp \
+	                imagepreviewwidget.cpp \
+	                imagepreviewview.cpp \
+	                kdatetimeedit.cpp \
+	                kdatepickerpopup.cpp \
+	                kipiinterface.cpp \
+	                mediaplayerview.cpp \
+	                monthwidget.cpp \
+	                pixmapmanager.cpp \
+	                ratingwidget.cpp \
+	                scanlib.cpp \
+	                searchadvanceddialog.cpp \
+	                searchfolderview.cpp \
+	                searchquickdialog.cpp \
+	                searchresultsview.cpp \
+	                searchresultsitem.cpp \
+	                searchwidgets.cpp \
+	                syncjob.cpp \
+	                tagcreatedlg.cpp \
+	                tagfilterview.cpp \
+	                tagfolderview.cpp \
+	                tagspopupmenu.cpp \
+	                upgradedb_sqlite2tosqlite3.cpp \
+	                welcomepageview.cpp 
 
 libdigikam_la_LIBADD = $(LIB_KIO) $(LIB_SQLITE3) $(LIB_KABC) $(LIB_KHTML) \
-		               $(LIBKIPI_LIBS) $(LIB_KUTILS) $(EXIV2_LIBS) \
-		               $(top_builddir)/digikam/sqlite/libsqlite.la \
-		               $(top_builddir)/digikam/libs/thumbbar/libthumbbar.la \
-		               $(top_builddir)/digikam/libs/themeengine/libthemeengine.la \
-		               $(top_builddir)/digikam/libs/widgets/libwidgets.la \
-		               $(top_builddir)/digikam/libs/dialogs/libdialog.la \
-		               $(top_builddir)/digikam/libs/jpegutils/libjpegutils.la \
-		               $(top_builddir)/digikam/libs/imageproperties/libimagepropertiesdigikam.la \
-		               $(top_builddir)/digikam/libs/threadimageio/libthreadimageio.la \
-		               $(top_builddir)/digikam/utilities/cameragui/libcameragui.la \
-		               $(top_builddir)/digikam/utilities/imageeditor/canvas/libdimgcanvas.la \
-		               $(top_builddir)/digikam/utilities/imageeditor/editor/libdimgeditor.la \
-		               $(top_builddir)/digikam/utilities/splashscreen/libsplashscreen.la \
-		               $(top_builddir)/digikam/utilities/setup/libsetup.la
+	               $(LIBKIPI_LIBS) $(LIB_KUTILS) $(EXIV2_LIBS) \
+	               $(top_builddir)/digikam/sqlite/libsqlite.la \
+	               $(top_builddir)/digikam/libs/thumbbar/libthumbbar.la \
+	               $(top_builddir)/digikam/libs/themeengine/libthemeengine.la \
+	               $(top_builddir)/digikam/libs/widgets/libwidgets.la \
+	               $(top_builddir)/digikam/libs/dialogs/libdialog.la \
+	               $(top_builddir)/digikam/libs/jpegutils/libjpegutils.la \
+	               $(top_builddir)/digikam/libs/imageproperties/libimagepropertiesdigikam.la \
+	               $(top_builddir)/digikam/libs/threadimageio/libthreadimageio.la \
+	               $(top_builddir)/digikam/utilities/cameragui/libcameragui.la \
+	               $(top_builddir)/digikam/utilities/imageeditor/canvas/libdimgcanvas.la \
+	               $(top_builddir)/digikam/utilities/imageeditor/editor/libdimgeditor.la \
+	               $(top_builddir)/digikam/utilities/splashscreen/libsplashscreen.la \
+	               $(top_builddir)/digikam/utilities/setup/libsetup.la
 
 libdigikam_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined
 
@@ -115,10 +114,10 @@
 
 digikam_SOURCES = main.cpp
 digikam_LDADD   = $(LIB_QT) $(LIB_KDECORE) $(LIB_KDEUI) \
-		          $(LIBSOCKET) $(LIB_KFILE) $(LIB_KPARTS) $(LIB_KUTILS) \
-		          libdigikam.la
+		  $(LIBSOCKET) $(LIB_KFILE) $(LIB_KPARTS) $(LIB_KUTILS) \
+		  libdigikam.la
 
-digikam_LDFLAGS = $(KDE_RPATH) $(all_libraries) $(LIB_KUTILS)
+digikam_LDFLAGS = $(KDE_RPATH) $(all_libraries) $(LIB_KUTILS) 
 
 rcdir = $(kde_datadir)/digikam
 rc_DATA = digikamui.rc
--- trunk/extragear/graphics/digikam/digikam/main.cpp #621601:621602
@@ -47,6 +47,17 @@
 
 #include <libkipi/version.h>
 
+// Exiv2 includes.
+
+#include <exiv2/exiv2_version.h>
+
+// Gphoto2 includes.
+
+extern "C"
+{
+#include <gphoto2-version.h>
+}
+
 // Local includes.
 
 #include "version.h"
@@ -64,10 +75,19 @@
 
 int main(int argc, char *argv[])
 {
-    QString description = QString(I18N_NOOP("A Photo-Management Application for KDE")) +
+    QString Exiv2Ver    = QString("%1.%2.%3").arg(EXIV2_MAJOR_VERSION)
+                                             .arg(EXIV2_MINOR_VERSION)
+                                             .arg(EXIV2_PATCH_VERSION);
+
+    QString Gphoto2Ver  = QString(gp_library_version(GP_VERSION_SHORT)[0]);
+
+    QString libInfo     = QString(I18N_NOOP("Using Kipi library version %1")).arg(kipi_version) +
                           QString("\n") + 
-                          QString(I18N_NOOP("Using Kipi library version %1"))
-                          .arg(kipi_version);
+                          QString(I18N_NOOP("Using Exiv2 library version %1")).arg(Exiv2Ver) +
+                          QString("\n") + 
+                          QString(I18N_NOOP("Using Gphoto2 library version %1")).arg(Gphoto2Ver);
+
+    QString description = QString(I18N_NOOP("A Photo-Management Application for KDE"));
     
     KAboutData aboutData( "digikam", 
                           I18N_NOOP("digiKam"),
@@ -78,6 +98,8 @@
                           0,
                           "http://www.digikam.org");
 
+    aboutData.setOtherText(libInfo.latin1());
+
     aboutData.addAuthor ( "Caulier Gilles",
                           I18N_NOOP("Main developer and coordinator"),
                           "caulier dot gilles at kdemail dot net",