The same smartphone (xiomi Redmi note 4) two DK: 5.5.0 (from ubuntu PPA) and appimage 5.9.0. The 5.5.0 version is able to import pictures from this device, the appimage version 5.9 is not able to do this - it does not recognize this smartphone (no camera detected in the Import menu). The OS is Kubuntu 16.04. P.
The same for 6.0.0 appimage beta and also for Samsung Android device. OS recognizes the camera, but not DK. On 5.5.0 (not appimage, but compiled Phil version from his ppa) both smartphones works as expected (they are autodetected). When I choose from Import menu the 'search for camera' option DK (or Gphoto) finds it but under different name (as Samsung galaxy model (MPT)....). I can import from them but there is one drawback: the history of previously imported files is gone and I cannot accept it because I keep pictures on my phone. Maybe it is appimage fault not DK itself? My working DK is deb, but both 5.9 and 6.0 are appimage. P.
I rebuild the AppImage 6.0.0 pre-release. Can you try agin with this version. https://files.kde.org/digikam/ Thanks in advance. Gilles Caulier
Created attachment 114447 [details] Strange empty space above thumbnails
Sorry, no change. I'm now on Kubuntu 18.04, the OS knows the smartphone, DK does not autodetect it. I have also added the screenshot with the weird empty space. Why it is so?
The weird empty space is a bug introduced with Qt 5.9.6. We have another entry for it. Forget this problem for the moment. Please, try this stage : 1/ open a terminal 2/ run digiKam 3/ plugin you phone on computer 4/ look in digiKam if import menu include the phone entry 5/ Report all debug traces from the terminal in this file. Gilles Caulier
> 4/ look in digiKam if import menu include the phone entry No, empty, just only one item: 'Add camera manualy...' (free translation from polish). > 5/ Report all debug traces from the terminal in this file. Not even one line (or char) appeared after attaching phone to computer (OS recognized this camera). So nothing to report, and I'm not sure if any previous messages (many many of them generated by digikam) are relevant to this bug? So I have added by hand the camera (Samsung galaxy models MTP), and during this steps the messages on the terminal were as follow: Digikam::DBinaryIface::checkDir: Testing "mysql_install_db" ... Digikam::adjustedEnvironmentForAppImage: Adjusting environment variables for AppImage bundle Digikam::DBinaryIface::checkDir: Found "mysql_install_db" Digikam::DBinaryIface::checkDir: Testing "mysqld" ... Digikam::adjustedEnvironmentForAppImage: Adjusting environment variables for AppImage bundle Digikam::DBinaryIface::checkDir: Found "mysqld" Digikam::DImg::load: "/tmp/.mount_digikaUAwgGm/usr/share/digikam/data/sample-aix.png" : PNG file identified Digikam::AlbumFilterModel::setSearchTextSettings: new search text settings: "" : hasResult = true , validRows = 48 Digikam::DBusyDlg::setBusyThread: Thread is started Digikam::DBusyDlg::slotComplete: Thread is complete unknown: QXcbConnection: XCB error: 3 (BadWindow), sequence: 9162, resource id: 31457591, major code: 40 (TranslateCoords), minor code: 0 Digikam::SetupDatabase::applySettings: No DB settings changes. Do nothing... After adding the phone (using automatic search option in the gphoto dialog window) I have choosen the newly added item in the import menu and then digikam generated a lot of messages and to my surprise DK appeared to know what I have previously downloaded from this camera (previously DK treated this camera added in such a way as new device). So I was able to download the latest pictures. Well, I have make one mistake, DK output the messages to screen not file, and ksonsole buffer overwritten the most important messages. But they were anyway connected with the manualy added camera, so not very relevant to this bug I guess? P.
The problem is reproducible with my iphone and my ipad. The native version of 6.0.0 beta1 receive the system notification about the connected camera. The AppImage bundle of 6.0.0 beta1 do not receive the notification. I will investigate. Gilles Caulier
Note : if i plug a SD card in my card reader, it work with AppImage. I can see the notification on the console. The Import/USB Mass Storage menu is automatically populated with the new device connected. Note that in this case Gphoto2 is not used. So, it's not a problem with the notification from the system, it's a problem with Gphoto2 embedded in the bundle. Note : my system is Mageia6 Gilles Caulier
The debug trace appear in the console with the AppImage when a SD card is inserted in computer : unknown: "/org/freedesktop/UDisks2/block_devices/sdl" has new interfaces: ("org.freedesktop.UDisks2.PartitionTable") unknown: "/org/freedesktop/UDisks2/block_devices/sdl1" has new interfaces: ("org.freedesktop.UDisks2.Block", "org.freedesktop.UDisks2.Filesystem", "org.freedesktop.UDisks2.Partition") Digikam::CollectionManager::updateLocations: location for "/mnt/data/photos/GILLES/NEW" is available true unknown: "/org/freedesktop/UDisks2/block_devices/sdl" lost interfaces: ("org.freedesktop.UDisks2.PartitionTable") unknown: "/org/freedesktop/UDisks2/block_devices/sdl1" lost interfaces: ("org.freedesktop.UDisks2.Partition", "org.freedesktop.UDisks2.Filesystem", "org.freedesktop.UDisks2.Block") Digikam::CollectionManager::updateLocations: location for "/mnt/data/photos/GILLES/NEW" is available true unknown: "/org/freedesktop/UDisks2/block_devices/sdl" has new interfaces: ("org.freedesktop.UDisks2.PartitionTable") unknown: "/org/freedesktop/UDisks2/block_devices/sdl1" has new interfaces: ("org.freedesktop.UDisks2.Block", "org.freedesktop.UDisks2.Filesystem", "org.freedesktop.UDisks2.Partition") Gilles Caulier
From a native DK, this is the notification that i see when i plug my ipad : digikam.general: fillSolidMenus: Found Camera "Apple Inc. iPad" protocols ("ptp") drivers ("gphoto") digikam.general: fillSolidMenus: Found Camera "Apple Inc. iPad" protocols ("ptp") drivers ("gphoto") digikam.general: fillSolidMenus: Found Camera "Apple Inc. iPad" protocols ("ptp") drivers ("gphoto") digikam.general: fillSolidMenus: Found Camera "Apple Inc. iPad" protocols ("ptp") drivers ("gphoto") digikam.general: fillSolidMenus: Found Camera "Apple Inc. iPad" protocols ("ptp") drivers ("gphoto") And of course these notification are not visible with AppImage. Gilles Caulier
SD cards are working fine with appimage here.
With AppImage, Using setup/camera Auto-Detect discover the Apple ipad Air properly with Gphoto2. So libgphoto2 integration in the bundle is fine...
I add more debug message to see where come from the notification from Gphoto2 devices. From native digiKam i can see : digikam.general: slotSolidDeviceChanged: "/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/usb2/2-1" digikam.general: checkSolidCamera: Found Camera "Apple Inc. iPad" protocols ("ptp") drivers ("gphoto") Gilles Caulier
In digiKam core, this connection catch the device notification : connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceAdded(QString)), this, SLOT(slotSolidDeviceChanged(QString))); connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceRemoved(QString)), this, SLOT(slotSolidDeviceChanged(QString))); It's the same connection for USB mass storage and Gphoto2 devices. With the AppImage, for the first one, the notification is send from Solid, for the second one no... Here i'm lost. Why a difference, as the host computer detect the Gphoto2 device, as i see the Plasma desktop notifier showing the expected pop-up...
Some progress here : Solid provide a CLI test tool name solid-hardware5 which can take one argument to report on the console the device connected or disconnected (as in DK core). I build and integrate this tool in the AppImage. This is the results : The tool from AppImage but running outside the bundle work fine : [gilles@localhost bin]$ ./solid-hardware5 listen Listening to add/remove events: Device Removed: udi = '/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/usb2/2-1' Device Added: udi = '/org/kde/solid/udev/sys/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/usb2/2-1' ^C The tool running inside the bundle do not work : [gilles@localhost appimage]$ ./AppRun -- digiKam AppImage Bundle -- Use 'help' as CLI argument to know all available options for digiKam application Listening to add/remove events: So, i can conclude to a dynamic loading library problem at run-time. Gilles Caulier
I found the problem but not the solution. This line from the AppImage init bash script introduce the dysfunction: export LD_LIBRARY_PATH=$DIR/usr/lib/:$LD_LIBRARY_PATH
I found the solution. I AppImage bash script we need another .so preloading : export LD_PRELOAD=$LD_PRELOAD:/usr/lib64/libudev.so Et voilà le travail... Gilles Caulier
Git commit b9caa8b8efe44cde4694cf12eecfeaf27fc6c3fe by Gilles Caulier. Committed on 17/08/2018 at 16:19. Pushed by cgilles into branch 'master'. preload libudev at AppImage bundle init to be able to catch Gphoto2 device notifications. FIXED-IN: 6.0.0 M +2 -0 project/bundles/appimage/data/AppRun https://commits.kde.org/digikam/b9caa8b8efe44cde4694cf12eecfeaf27fc6c3fe
I must say that I have red this thread like good crime story with detective Poirot looking for the murderer ;-). Thanx Gilles for finding the beast. Does this little patch be backported to 5.9? P.
No 5.9.0 no need to be fixed as well. Just before to run the AppImage executable, run export LD_PRELOAD=$LD_PRELOAD:/usr/lib64/libudev ...on you host system, and it must work. Gilles Caulier
Almost fixed. On kubuntu (and I gues all other *buntu) thats the path: export LD_PRELOAD=$LD_PRELOAD:/lib/x86_64-linux-gnu/libudev.so.1 And after this it works fine.