Bug 349647

Summary: Krusader is unable to "browse" a zip file (or a 7z one) in Kubuntu 15.04
Product: [Applications] krusader Reporter: Toni Asensi Esteve <toni.asensi>
Component: krarcAssignee: Davide Gianforte <davide>
Severity: normal CC: davide
Priority: NOR    
Version: Git   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: The "archive" configuration in Krusader
After the «Auto Configure» button is pressed

Description Toni Asensi Esteve 2015-06-27 09:32:56 UTC
After compiling the git version of Krusader and executing it in a clean Kubuntu 15.04 virtual machine, Krusader is unable to "browse" a zip file (or a 7z one). However, Krusader is able to "browse" a tar or tar.bz2 file.

The error shown in Krusader when trying to open a file, for example, 
    Error: The directory /home/user/Desktop/user.zip does not exist.
I've checked that that error comes from the file 
from the function
    bool normal_vfs::populateVfsList(const QUrl &origin, bool showHidden)
from this code        
    // check that the new origin exists
    if (!QDir(path).exists()) {
        if (!quietMode)
            emit error(i18n("The directory %1 does not exist.", path));
        return false;
Additional information: 
    - When executing 
    Krusader writes
        couldn't create slave: "Unable to create io-slave:
        klauncher said: Could not find the 'kio_krarc' plugin.
    - The execution of
        find / -xdev -iname "*krarc*" 2>/dev/null
    but the execution of the same commmand in a Kubuntu 14.04 with the official Krusader Qt4 packages returns:
    - The file
    is a file, not a directory, of course. Executing
        unzip -l /home/user/Desktop/user.zip
    shows its contents.
    - Trying to go with Krusader to that "address"
    doesn't work (although the same action works in a Krusader Qt4, under Kubuntu 14.04).        
    - Krusader was compiled and executed with:
        git clone git://anongit.kde.org/krusader 
        cd krusader
        git checkout plasma
        mkdir -p krusader-kf5-build
        cd krusader-kf5-build
        sudo make install    
    - Maybe the following information won't be very useful, but just in case: the problem of 
        Krusader not being able to "browse" a zip file (or a 7z one), but being able to "browse" a tar or tar.bz2 file
    also happened in that case:

I'm available for further testing! Thanks for Krusader!

Reproducible: Always
Comment 1 Davide Gianforte 2015-06-27 09:54:08 UTC
It seems Krusader is unable to load libkio_krarc.so. You can override the install directory (actually  /usr/lib/x86_64-linux-gnu/plugins/) by using -DQT_PLUGIN_INSTALL_DIR= in cmake command.

I don't have the Kubuntu VM that I use for testing and I don't remember if I forced the parameter.

Atm, I'm testing Debian Jessie, as soon as possible I'll install a new Kubuntu to check.
Comment 2 Davide Gianforte 2015-06-27 16:55:05 UTC
The installation path for the plugins is wrong; try to configure adding -DQT_PLUGIN_INSTALL_DIR=lib/x86_64-linux/gnu/qt5/plugins; this should install likbio_iso and likbio_krarc in the correct folder.
Comment 3 Toni Asensi Esteve 2015-06-27 17:43:19 UTC
Thanks, I supposed it was meant 
and so the final commands that were used in this new test were:
    cmake ../krusader -DCMAKE_INSTALL_PREFIX=/usr/ -DCMAKE_C_FLAGS:STRING="-O2 -fPIC" -DCMAKE_CXX_FLAGS:STRING="-O2 -fPIC" -DQT_PLUGIN_INSTALL_DIR=/usr/lib/x86_64-linux-gnu/qt5/plugins
    sudo make install   
and it answered:
    -- Installing: /usr/lib/x86_64-linux-gnu/qt5/plugins/libkio_krarc.so
    -- Installing: /usr/share/kservices5/krarc.protocol
    -- Installing: /usr/lib/x86_64-linux-gnu/qt5/plugins/libkio_iso.so
    -- Installing: /usr/share/kservices5/iso.protocol
    -- Installing: /etc/xdg/kio_isorc
Now Krusader can "browse" the file 
and it can go to

Although when Krusader tries to "browse" the file
then Ark is executed. In Konsole is seen
   "/usr/bin/ark -caption Ark /home/user/Desktop/user.7z"
Trying to go with Krusader to the "address"
the error that is seen is the old one:
    Error: The directory /home/user/Desktop/user.7z does not exist.

Note: The "p7zip-full" package is installed. Executing
    dpkg -l | grep 7z
     ii  p7zip-full                                    9.20.1~dfsg.1-4.1                          amd64        7z and 7za file archivers with high compression ratio

I'll attach some screenshots of the archive configuration in Krusader.
Comment 4 Toni Asensi Esteve 2015-06-27 17:44:36 UTC
Created attachment 93367 [details]
The "archive" configuration in Krusader
Comment 5 Toni Asensi Esteve 2015-06-27 17:45:17 UTC
Created attachment 93368 [details]
After the «Auto Configure» button is pressed
Comment 6 Davide Gianforte 2015-07-02 19:14:30 UTC
fixed in commit 4885f99568d44360b94d3e27dc203cda78551431

Thanks to Toni for the patch :)