digikam 0.9.3: Canon EOS400D - no thumbnails then digikam segfaults.

Mark Ovens parish at magichamster.com
Mon Jan 28 09:38:24 PST 2008

Re-posting as the original, posted a week ago, hasn't appeared on the 
list - apologies if it appears twice

I originally posted this on the digikam mailing list as it appeared to 
be a dk problem, however two people there have posted to say that it 
works on Linux so it looks like this is specific to the FreeBSD port.

Running under KDE 3.5.8 on FreeBSD 6.3-PRERELEASE

When I connect my Canon EOS400D (PTP Mode) the OS reports it as:

ugen0: Canon Inc. Canon Digital Camera, rev 2.00/0.02, addr 2

In digikam I connect to the camera, the camera window opens, displays
"Connecting to camera", 'BUSY' appears on the camera LCD screen and the
read/write LED flashes. Digikam then displays "Listing Folders....".

When digikam has finished, there are no thumbnails displayed but the
following appears in the console:

digikam: Failed to get folders list from camera!
digikam: Libgphoto2 error: Unspecified error (-1)

Then, when I click 'Close' in the camera window in digikam, this appears
in the console and digikam dies on a SIGSEGV:

KCrash: Application 'digikam' crashing...

The following library versions are being used:

libgphoto2  2.4.0
kipi-plugins 0.1.4
exiv2 0.14
lcms 1.17
dcraw 8.81

This camera worked OK in 0.9.2

It was suggested that gphoto2 may be the cause (Canon stability problems
in 2.4.0) so I downgraded gphoto2 to 2.2.1 but the problem persisted.

I then downgraded digikam back to 0.9.2 and it works correctly - even 
with gphoto2 2.4.0 - so it definitely seems to be a problem with digikam 

Also, running gphoto2 from the commandline -

``gphoto2 --auto-detect -L''

- works correctly.

I've done some limited debugging (using fprintf()s in both the digikam 
and gphoto2 code) and the problem seems to be in camlibs/ptp2/library.c 
(gphoto2) at around line 2578:

                  PTPStorageIDs storageids;

         if (ptp_operation_issupported(params,PTP_OC_GetStorageIDs)) {
fprintf(stderr, ">> 2\n");
                          CPR (context, ptp_getstorageids(params,
fprintf(stderr, ">> Returned from ptp_getstorageids()\n");
                          for (i=0; i<storageids.n; i++) {
                                  char fname[PTP_MAXSTRLEN];

The fprintf()'s are my debug and it never gets to the second one so it 
appears to never return from ptp_getstorageids() - although this is 
using an optimized build rather than a debug build so may be misleading.

If someone can explain how to build a debug version of digikam (and 
libgphoto2) I will provide a back trace.



More information about the freebsd-ports mailing list