Kio-onedrive is ready (for basic usage)

kio-onedrive, a project of mine that uses a KIO worker (same as what allows you to put ftp:/ and ssh:/ into Dolphin) to access Microsoft OneDrive, is in a state I believe would be useful for people who use OneDrive. I’ve been using it for a few days now, and it works well.

If you have proposed fixes or suggestions, please either file an issue or MR. It currently can read and write files as well as list folders.

Note I cannot put all the time in the word to this, so it might take a while for me to respond.

11 Likes

Hey! Thanks for putting in the effort. Following this. Will update if I find something missing.

1 Like

Build fails in Fedora 41, Clang 19.1.0

[14/16] Building CXX object src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o
FAILED: src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.pcm
/usr/bin/clang++ -DKCOREADDONS_LIB -DKPLUGINFACTORY_PLUGIN_CLASS_INTERNAL_NAME=kio_onedrive_factory -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_FOREACH -DQT_NO_KEYWORDS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"kio6_onedrive\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dkio_onedrive_EXPORTS -I/home/REDACTED/src/kio-onedrive/build/src -I/home/REDACTED/src/kio-onedrive/src -I/home/REDACTED/src/kio-onedrive/build/src/kio_onedrive_autogen/include -I/home/REDACTED/src/kio-onedrive -I/home/REDACTED/src/kio-onedrive/build -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/KF6/KIOCore -isystem /usr/include/KF6/KIO -isystem /usr/include/KF6/KCoreAddons -isystem /usr/include/qt6/QtDBus -isystem /usr/include/KF6/KI18n -isystem /usr/include/KAccounts6 -isystem /usr/include/accounts-qt6 -isystem /usr/include/qt6/QtXml -isystem /usr/include/qt6/QtGui -fno-operator-names -fno-exceptions -Wno-gnu-zero-variadic-macro-arguments -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Werror=undef -Wvla -Wdate-time -pedantic -Wzero-as-null-pointer-constant -fdiagnostics-color=always -g -std=c++20 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o -MF src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o.d @src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o.modmap -o src/CMakeFiles/kio_onedrive.dir/OnedriveWorker.cpp.o -c /home/REDACTED/src/kio-onedrive/src/OnedriveWorker.cpp
/home/REDACTED/src/kio-onedrive/src/OnedriveWorker.cpp:32:8: error: declaration 'Nothing' attached to named module 'OnedriveWorker' can't be attached to other modules
   32 | struct Nothing{};
      |        ^
/home/REDACTED/src/kio-onedrive/src/URLHandler.cpp:23:8: note: also found
   23 | struct Nothing {};
      |        ^
1 error generated.
ninja: build stopped: subcommand failed.

Hello,
Thank you for catching this. The issue should be fixed on ‘master’. Please pull the repository and try to compile again.
And one note: please file future bug reports, compile errors, and any kind of issues you may encounter at the Invent issues page. This makes it easier for me to track what has been fixed and what hasn’t.

1 Like

Hello and thanks for your effort to make OneDrive integrate into Dolphin that well. I tested it on a current Arch Linux system and it seems to work.

One thing I have stumbled upon is that compilation with Ninja did not work due to missing symbol ONEDRIVE in DriveItem.cpp. I had to manually add #include "onedrivedebug.h" to make it compile.

1 Like

Hi! I don’t know much about build systems, but if that’s something you’ve identfied that could be incorporated and improved for all users, submitting an issue or merge request to the Invent issues page linked above would be perfect to help ensure it’s in place in the project going forward :slight_smile:

1 Like

You are right. However, it seems like this was already fixed few hours after my post so there was no need for an additional issue on the invent page. :slight_smile:

Bravo! Awesome work, this is magnificent.

1 Like

That’s nice to see. Will there be bin packages for Debian/Ubuntu/KDE Neon and Arch ?

2 Likes

I second what @Marcos_Junior has said. I wish there was a readily made package available as I know nothing about compiling programs on my own, especially C++ where the build system makes no sense to me. (I should mention, I am not on Fedora; instead I am on Arch, so I don’t think I can make use of the fedora package)

1 Like

For Debian (testing and unstable) and Ubuntu (>= 25.04), I’ve created an Open Build Service (thanks to SUSE for providing such a nice piece of infrastructure free of charge) repository here.

Instructions for actually installing it are also available

2 Likes

For Arch Linux, there appears to be a “kio-onedrive-git” package on the Arch Linux User Repository (AUR). I am not involved with that package but I do not find anything wrong with it. It might be possible to install it from there.

Just tried it out, works surprisingly well for my basic OneDrive needs. Read/write is smooth so far. Would love to see thumbnails/previews in the future if that ever gets added. Thanks for sharing this!

1 Like