Summary: | kioexec regression with kdeconnect | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kio | Reporter: | Nicolas Fella <nicolas.fella> |
Component: | general | Assignee: | KIO Bugs <kio-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | a.samirh78, faure, kdelibs-bugs, sitter |
Priority: | NOR | ||
Version: | git master | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Nicolas Fella
2020-08-29 15:03:40 UTC
From the docs: UDS_LOCAL_PATH A local file path if the ioslave display files sitting on the local filesystem (but in another hierarchy, e.g. settings:/ or remote:/) that matches what kdeconnect is doing, which is mounting the remote file system as an sshfs mount, however kdeconnect has "Class=:internet". IIUC Class=:internet is for something like the sftp KIO, where the remote file system isn't mounted locally. I think this issue can be fixed by making the kdeconnect protocol Class :local. I tested that locally by editing kio/kdeconnect.json in kdeconnect-kde, and it seems to work. Seems to work indeed, thanks! From a KDE Connect POV this is resolved, I'll leave it up to you to decide whether to close it Git commit 60a1adf2295d21d87fabed9c4d45cb70b6ad903e by Nicolas Fella. Committed on 30/08/2020 at 21:45. Pushed by nicolasfella into branch 'master'. [kio] Mark Class as local This is needed for kioexec to work properly since we forward to a local file system Related: bug 413477 M +17 -17 kio/kdeconnect.json https://invent.kde.org/network/kdeconnect-kde/commit/60a1adf2295d21d87fabed9c4d45cb70b6ad903e Git commit 56d40292470bb25253405b99d94792b72436a4d7 by Nicolas Fella. Committed on 30/08/2020 at 21:47. Pushed by nicolasfella into branch 'release/20.08'. [kio] Mark Class as local This is needed for kioexec to work properly since we forward to a local file system Related: bug 413477 (cherry picked from commit 60a1adf2295d21d87fabed9c4d45cb70b6ad903e) M +17 -17 kio/kdeconnect.json https://invent.kde.org/network/kdeconnect-kde/commit/56d40292470bb25253405b99d94792b72436a4d7 Looks fixed to me. :) Cool beans. One could argue there should be runtime validation for this in StatJob. If a :internet slave sets UDS_LOCAL_PATH that seems fairly indicative of using the wrong class. (In reply to Harald Sitter from comment #6) > Cool beans. > > One could argue there should be runtime validation for this in StatJob. > If a :internet slave sets UDS_LOCAL_PATH that seems fairly indicative of > using the wrong class. Excellent point; it also solves an issue of StatJob behaving differently based on whether you call: - KIO::mostLocalUrl, if the protocol Class isn't :local the job is cancelled, UDS_LOCAL_PATH is never looked at - KIO::stat/statDetails then job->statResult(), the Class isn't checked and UDS_LOCAL_PATH is used StatJob should be consistent (that issue made me go in circles for a while, where it didn't work if the code in kdeconnect used KRun which went through KIOExec path (uses KIO::mostLocalUrl); and worked if I changed kdeconnect to use OpenUrlJob instead of KRun, the former uses StatJob::statDetails). I'll see what I can do about that and submit an MR. Thanks :) |