GSoC/2019/StatusReports/Feverfew: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2019‎ | StatusReports
mNo edit summary
(Update of progress)
Line 38: Line 38:
• ​32 bit support [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/1 '''Merged''']
• ​32 bit support [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/1 '''Merged''']


• ​Disable writeback caching [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/6 '''In Review''']
• ​Disable writeback caching [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/6 '''Merged''']


• ​Fix broken links kdeconnect - fixed upstream.
• ​Fix broken links kdeconnect - fixed upstream.
Line 44: Line 44:
• ​Deal with slaves that don't support stat - it was decided that would be too much hassle for little gain. Slaves that don't support stat cannot be mounted.
• ​Deal with slaves that don't support stat - it was decided that would be too much hassle for little gain. Slaves that don't support stat cannot be mounted.


• Optimising lookup function [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/8/ '''In Review''']
• Optimising lookup function [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/8/ '''Merged''']


== To Do ==
• ​Kill KIO::put job if the cache got written to. [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/9 '''Merged''']
​Deal with invalid size reporting slaves (http/gdrive).
 
• ​Refresh attributes of files/dirs and children of dirs after a while. [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/10 '''In Review''']
 
• ​Verify that write access works before writing into the cache. [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/14 '''In Review''']
 
​Look into using KIO::read/KIO::write if possible [https://gitlab.com/Vogtinator/kio-fuse/merge_requests/14 '''In Review''']
 
• ​Implement KDED module to manage KIO-Fuse mounts. Provide a service to
convert KIO URLs to local path for KIO-unaware applications. [https://phabricator.kde.org/D23384 '''In Review''']


• ​Kill KIO::put job if the cache got written to.
Fix upstream KIO bugs and standardise behaviour of FileJob - [https://phabricator.kde.org/D23194 '''In Review''']; [https://phabricator.kde.org/D23207 '''In Review''']


​Refresh attributes of files/dirs and children of dirs after a while
== To Do ==
​Deal with invalid size reporting slaves (http/gdrive) - unfortunately this bug hasn't been managed to be resolved as of yet.


• ​Verify that write access works before writing into the cache


• ​Look into using KIO::read/KIO::write if possible


• ​Implement KDED module to manage KIO-Fuse mounts. Provide a service to
convert KIO URLs to local path for KIO-unaware applications.


== About Me ==
== About Me ==

Revision as of 14:21, 24 August 2019

Project Overview: Polishing KIOFuse

KIOSlaves are a powerful feature within the KIO framework, allowing KIO-aware applications such as Dolphin to interact with services out of the local filesystem over URLs such as fish:// and gdrive:/. However, KIO-unaware applications are unable to interact seamlessly with KIO Slaves. For example, editing a file in gdrive:/ in LibreOffice will not save changes to your Google Drive. One potential solution is to make use of FUSE, which is an interface provided by the Linux kernel, which allows userspace processes to provide a filesystem which can be mounted and accessed by regular applications. ​KIOFuse is a project by Fabian Vogt that allows the possibility to mount KIO filesystems in the local system; therefore exposing them to POSIX-compliant applications such as Firefox and LibreOffice. KIOFuse is a feature that has been requested many times before, case in point ​this very active 15 year-old bugzilla bug report​ and several reddit threads (​1​, ​2, ​ ​3​, ​4​).

Project Goals

This project intends to polish KIOFuse such that it is ready to be a KDE project. In particular, I’ll be focusing on the following four broad goals:

• ​Improving compatibility with KDE and non-KDE applications by extending and improving supported filesystem operations.

• ​Improving KIO Slave support.

• ​Performance and usability improvements.

• ​Adding a KDE Daemon module to allow the management of KIOFuse mounts and the translation of KIO URLs to their local path equivalents.

Commits

Our development workflow is that I have a fork of the KIOFuse repo, and changes are done on branches. When the branch is ready to be reviewed a merge request is opened upstream.. All my merge requests can be found here.

Blog

I also have a blog which gives more details about the technical challenges that I have faced (and hopefully solved) in the project. The blog can be found here.

Done

• ​Map KIO job errors to fuse_reply_err Merged

• ​Install own signal handlers Merged

• ​Change of password support Merged

• ​32 bit support Merged

• ​Disable writeback caching Merged

• ​Fix broken links kdeconnect - fixed upstream.

• ​Deal with slaves that don't support stat - it was decided that would be too much hassle for little gain. Slaves that don't support stat cannot be mounted.

• Optimising lookup function Merged

• ​Kill KIO::put job if the cache got written to. Merged

• ​Refresh attributes of files/dirs and children of dirs after a while. In Review

• ​Verify that write access works before writing into the cache. In Review

• ​Look into using KIO::read/KIO::write if possible In Review

• ​Implement KDED module to manage KIO-Fuse mounts. Provide a service to convert KIO URLs to local path for KIO-unaware applications. In Review

Fix upstream KIO bugs and standardise behaviour of FileJob - In Review; In Review

To Do

• ​Deal with invalid size reporting slaves (http/gdrive) - unfortunately this bug hasn't been managed to be resolved as of yet.



About Me

Name: Alexander Saoutkin

Mentors: Fabian Vogt, Chinmoy

Github: github.com/feverfew

IRC: feverfew (#kde-fm freenode)