After using ark to extract files to a removable piece of media using the Extract button in the toolbar, ark keeps the path to that removable media open (visible in lsof). This prevents unmounting from either Dolphin or command line. Dolphin does not report who is still using the removable storage, so it is confusing. Closing ark remedies the problem, but there have been occasions where I am copying files from an archive to various removable devices, and it is frustrating to have to close and reopen a large archive file just to do this. It seems like the destination directory should be closed when the extraction is complete.
Git commit dbe7eba74931af83c7fef47e75422dc00d5ab567 by Elvis Angelaccio. Committed on 01/07/2018 at 21:49. Pushed by elvisangelaccio into branch 'master'. Add checks for expected working dir in the extraction tests After an extraction ends, the current working directory should be the same we started from. Otherwise Ark might prevent unmounting of removable devices. M +11 -0 autotests/app/batchextracttest.cpp M +11 -0 autotests/kerfuffle/extracttest.cpp https://commits.kde.org/ark/dbe7eba74931af83c7fef47e75422dc00d5ab567
Git commit 478d2d71f861f51ca561282727bd876cfc622370 by Elvis Angelaccio. Committed on 01/07/2018 at 21:50. Pushed by elvisangelaccio into branch 'master'. libarchive: restore old working directory after extraction Otherwise Ark might prevent unmounting of removable devices. To simplify the logic in `extractFiles()`, we move the `QDir::setCurrent()` call as far as possible (which is before the huge while loop). M +21 -4 plugins/libarchive/libarchiveplugin.cpp M +4 -0 plugins/libarchive/libarchiveplugin.h https://commits.kde.org/ark/478d2d71f861f51ca561282727bd876cfc622370
Git commit 36d6287503ad9d0879f97709cffee60fdc24a651 by Elvis Angelaccio. Committed on 01/07/2018 at 22:14. Pushed by elvisangelaccio into branch 'master'. cliinterface: restore old working directory after extraction Otherwise Ark might prevent unmounting of removable devices. To fix this issue we only need to save the current working dir before the very first `QDir::setCurrent()` call in `extractFiles()`, and also to restore it at the end of every extraction. However, since `m_oldWorkingDir` is used also by copy and move jobs, we can't touch it from extract jobs, otherwise we'll break `movetest`. As workaround, we can use a new variable that will be used only by extract jobs. FIXED-IN: 18.07.80 M +17 -4 kerfuffle/cliinterface.cpp M +3 -1 kerfuffle/cliinterface.h https://commits.kde.org/ark/36d6287503ad9d0879f97709cffee60fdc24a651