Help creating an UBSync arm64 version
-
@Luksus
Are you using my version or yours ? -
@ernest Yours. I already deleted UBSync multiple times to get sure.
Edit:
Hm, I will check it again...the file creation dates of the lib files, look like the ones I created myself.Edit2:
Ah no, it is definitely yours, the files where created on the 26th November 2019. -
Maybe a different library could be used? Something like this?
https://github.com/strukturag/qwebdavlib/tree/develEdit: or maybe these in Python:
https://github.com/hevp/compact-dav
https://github.com/alexnsl/nc-syncEdit or in Rust:
https://github.com/budde25/nextcloud-client-cli -
If you want to start manually the daemon this is the command:
LD_LIBRARY_PATH=/opt/click.ubuntu.com/ubsync/current/Owncloud-Sync/lib/aarch64-linux-gnu/lib/ && /opt/click.ubuntu.com/ubsync/current/lib/aarch64-linux-gnu/bin/OwncloudSyncd
You can play with it according to : https://doc.owncloud.org/desktop/2.1/advancedusage.html
An example of output.
https://paste.ubuntu.com/p/R3DwRYtxmR/Looking back at the code, I remember why I didn't push the arm64 ... the type of architecture is hardcoded and i don't know the c++, making the journey quite hard. So any help is welcome for that.
-
@ernest thanks.
Interestingly the command works and my folder gets synced: https://paste.ubuntu.com/p/CXf3VWmB3n/
After executing the command, the app also shows a "last-synced" date. The service status still is "Stopped".So the service just cannot be started by the app. Perhaps it is an AppArmor issue?!
-
@Luksus
On my side the app doesn't any issue on a fresh install ;), so I doubt apparmor.likely while playing you messed up something.
please ensure that the file is correct, as below.
Look into .config/ubsync/ubsync.conf, ensure that your timer is different than 0
-
@ernest Ha, that's it!
In that file the exec was referring to the wron path: ..../arm-linux-gnueabihf/...
I changed it to "aarch64-linux-gnu" and now it works!Obviously that file is not getting purged, when clearing app data with UT-Tweak-Tool, because it is not part of the app-directory...
Edit:
Hm, but it is still not possible to trigger a sync from within the app.
There is an error that it could not find libowncloudsync.so.0: https://paste.ubuntu.com/p/Wzp55yHnvq/But I can still trigger the sync with the terminal command.
-
@Luksus
I wouldn't be surprise there is a remaining bit of armhf code somewhere.(How were you able to install it ??? on arm64 phone)I suggest to remove the app and search manually for any ubsync and Nextcloud or Owncloud related, then delete them.
like sudo find / -iname "ubsync" -
@ernest I cleaned up everything and reinstalled your version. And now it works.
How were you able to install it ??? on arm64 phone
I built an arm64 version of ubsync... but the contained pre-compiled owncloud libraries were still armhf. And I think the qmake .pro-file did also create armhf path's and so on...
-
@Luksus Yes, the architecture is hardcoded everywhere in this app
-
@luksus I tried changing the path in OwncloudSyncd.conf as you described and the sync client works. Is there any chance of getting this into the OpenStore? How can I help?
(See also https://bugs.launchpad.net/owncloud-sync/+bug/1896387) -
@ruedigerkupper I think @ernest just should put his arm64 version in the store...
-
@luksus
As explained, the code between arch version has to be the same on openstore. Currently the app has been written in c++/qml with hardcoded arch...
Thus the code needs to be updated for multiarch... It's beyond my capabilities. -
@ernest in openstore you can just upload click packages for every arch separately.
I don't get the problem. -
@luksus no, this one has a script in background and needs to be manually review.
Usually brian asks for the source, compile it by itself and upload the packages.So if the source are not public, no upload.
-
@ernest ahhh, because it is unconfined. Ok, I understand.
So, did you build the shipped binaries by yourself? If yes, perhaps you could tell me what is needed to build them and I could try to integrate it in a clickable build.
The last time I tried to build the the needed binaries, I have had no luck, but I also was not sure, if I even got the right sources...
-
@luksus
Why do you want to build it by yourself ?Yes i did build the lib by myself and change the arch in the code to arm64.
-
@ernest to know, waht is needed to integrate the build of the lib into the clickable build...in the end with different architectures.
-
I created the fork of the UBSync with included arm64 support - It works, but it definitely needs a revision. I believe, that most of the steps are correct, but especially, the 32bit build needs a re-revision - it should be principally equal as the forked one - the same binaries (I only changed paths to enable multiarch).
Changes are described in README.
I had no luck with including the build process into the package itself because it went me into the dependency hell in the container (given probably by mixed repos in the default container - I'm not experienced enough with clickable and docker to deal with in reasonable time). I also experienced errors (Access Forbidden) with the ubports binaries of owncloudcmd extracted from deb packages. The same I experienced for some of older self-compiled owncloud versions. I finally build v2.5.3 in libertine, extracted binaries and it works.
The fork is now on my GitHub
The 64-bit click package is also there for testing -
@belohoub - thank you so much for your work on this! Testing using Volla phone, OTA-16 RC, I was able to add my Nextcloud account (hosted by OwnCube) and setup my sync folders - but I got an error message ("! Start Service") when I press the "Start" button in the "Sync Service" page.
Best regards,
Steve Berson