-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Syncing fails on an Android/termux as os.link is not available #744
Comments
I don't understand what you are trying to do by using vdirsyncer is this setup. Could you elaborate? Filesystem support for Android seems impossible to do safely, so I'd rather have people avoid such a setup in the first place. |
@michitux any update on this? |
Sorry for the late reply. My main goal was to backup the contents from one nextcloud instance and then I wanted to sync with another nextcloud instance. I wanted to do this on my phone in termux as this was what I had at hand. In the meantime I did the same (successfully) on my laptop. I guess using vdirsyncer under termux on a real Android phone as I did is not really useful apart from very special cases. However, on a tablet or Chromebook with a keyboard it might make more sense. Concerning the filesystem: this is the internal /data directory, on my phone this is ext4. It's just that hard links have been disabled. Just out of curiosity I have also tried the master breach - it compiles but fails then probably for the same reason (the traceback is not that clear here). As I have said I can fully understand if you don't want to support this but then an earlier warning/error message would be nice. |
I suppose you get something like "permission denied"? I am not sure how to test that beforehand. But we can definetly make the error message nicer. |
I've just noticed that somehow the linebreaks in the traceback above were completely lost. I've just tried restoring them, now the error should be easier to read I hope. In Python the check seems to be quite simple: test if |
I agree that a preliminary check in Python would be very simple, but my plan is to eventually port the entire codebase to Rust due to various reasons. Outside of Python I have nothing to go by other than the "permission denied" error. Bailing out early after the first error is generally undesirable for storage actions ("Copying to ..", "Deleting ..."), but I might have to do that for just IO errors and nothing else. |
Is it there an update on this ? |
@dnastase no that's also part of the issue. As far as I can tell this Python port just violates the lang spec |
Vdirsyncer fails syncing on Android in termux due to
os.link
not being available in the python build of termux/Android (see termux/termux-packages#29 for details).os.link
is used in the atomicwrites library as it can be seen in the traceback below:I'm not sure if there is a proper solution for this or if this simply means vdirsyncer cannot be used on Android. If the latter is the case it would be nice if vdirsyncer could fail early and wouldn't try syncing every single item.
The text was updated successfully, but these errors were encountered: