UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Help creating an UBSync arm64 version

    Scheduled Pinned Locked Moved App Development
    39 Posts 8 Posters 6.5k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • LuksusL Offline
        Luksus
        last edited by

        Hi,
        I am not sure, if @ernest, who developed UBSync is still active.
        https://code.launchpad.net/~ocs-team/owncloud-sync/UBsync

        For some time I am trying to create an arm64 version of UBSync.
        Problem is, that the background service cannot be started.
        I think, that I have found the main issue: it is using precompiled libraries and binaries. In detail this is:

        • libowncloudsync.so.0
        • libowncloud_csync.so.0
        • owncloudcmd

        I tried two ways so far:

        • replace this files with arm64 pendants, which I found in debian repositories
          • that did not work yet
        • compile complete "owncloud client" myself
          • did also not work

        So if you has some free time and experience, you are welcome to help me, finding a way to make a working arm64 version of this app.
        Thanks 🙂

        Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

        1 Reply Last reply Reply Quote 1
        • poVoqP Offline
          poVoq
          last edited by

          Yes that would be great. ernest posted a working ARM64 version here:
          https://drive.google.com/file/d/1EpNu6Fwx2FpljrPONjzE9WvzWT3ZP7lB/view?usp=sharing
          As a quick fix you can probably extract the needed libraries from it.

          Fairphone 5 (waiting for port)

          LuksusL 1 Reply Last reply Reply Quote 0
          • LuksusL Offline
            Luksus @poVoq
            last edited by Luksus

            @poVoq ahh thanks, where and when did he post this?

            Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

            1 Reply Last reply Reply Quote 0
            • E Offline
              ernest
              last edited by

              @poVoq said in Help creating an UBSync arm64 version:

              As a quick fix you can probably extract the needed libraries from it.

              Yes, I'm still there, but currently my life is in boxes and I cannot much do... Couple months I had time to compile a arm64 with owncloudcmd while the version I kept updated in armhf was with nextcloudcmd.

              This difference happened because I wanted to remained as close as possible of nextcloud mindset initially. However at the time of the arm64, owncloudcmd was better sustained... then I decided to give a try. For this difference I cannot simply publish the arm64 on the openstore.

              Not being good at cross compile on my laptop I used my nexus 5 libertine container to compile for armhf and a Pi 3 A+ for the arm64, not having them available I'm stuck by my competencies.

              You cannot place the lib from other repos into ubsync because there will be dependency issue that is not present in the phone.
              As lazy solution, I suggest to use the arm64 version that i've uploaded on my repos, if somebody is willing to update it let me know I can help and even grant access to the launchpad.
              I'm not planing to recover a std life prior months... due to i'm looking for job and Covid time doesn't help.

              LuksusL 1 Reply Last reply Reply Quote 0
              • LuksusL Offline
                Luksus @ernest
                last edited by

                @ernest : Hi, great that you are still here 🙂
                First: I wish you all the best for your current situation.

                I tried your arm64 build, sadly it's the same behaviour as in my own builds: "job failed to start" on pressing the button "Start" in the Sync Sevice settings.

                Maybe the issue is my phone and not the app...

                Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

                E poVoqP 2 Replies Last reply Reply Quote 0
                • E Offline
                  ernest @Luksus
                  last edited by

                  @Luksus
                  To troubleshoot you have to look at the app log and the nextcloudcmd/owncloudcmd log.

                  LuksusL 1 Reply Last reply Reply Quote 0
                  • poVoqP Offline
                    poVoq @Luksus
                    last edited by

                    @Luksus said in Help creating an UBSync arm64 version:

                    Maybe the issue is my phone and not the app...

                    Well, to be honest, I have not actually tried to set it up completely. I just installed and tested if it runs so far. So the version might not work on recent UT versions.

                    Fairphone 5 (waiting for port)

                    1 Reply Last reply Reply Quote 0
                    • LuksusL Offline
                      Luksus @ernest
                      last edited by Luksus

                      @ernest Where do I find the nextcloudcmd/owncloudcmd logs?
                      The app log itself is not very helpful:

                      qml: Accounts.qml - onButtonClicked - Start Sync daemon
                      ServiceControl::setServiceRunning: true
                      should start service
                      start: Job failed to start
                      

                      And from which sources did you compile the libowncloudsync (nextcloud equivalent)?

                      Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

                      E 1 Reply Last reply Reply Quote 0
                      • E Offline
                        ernest @Luksus
                        last edited by

                        @Luksus
                        I don't recall in detail but within the log folder of the user, do a find to locate it.
                        for the source : https://github.com/owncloud/client

                        1 Reply Last reply Reply Quote 1
                        • K Offline
                          kugiigi
                          last edited by

                          I've also tried the arm64 version on my Xperia X and get the same issue. I haven;t investigated deep yet though. In any case, thank you for your work and hopefully someone can help us with this 🙂

                          E 1 Reply Last reply Reply Quote 0
                          • E Offline
                            ernest @kugiigi
                            last edited by ernest

                            @kugiigi
                            Hum, strange or bad app design 🙂

                            I just tried it on my H9 OP3T and it works, to enable the sync I HAD to put a frequency... on "No Sync" the app then seems to sync even when pushing the button sync (Which we might think it would trig a manual sync) ...

                            @Luksus
                            For the log :
                            cat .cache/upstart/OwncloudSyncd.log

                            LuksusL 1 Reply Last reply Reply Quote 0
                            • LuksusL Offline
                              Luksus @ernest
                              last edited by

                              @ernest said in Help creating an UBSync arm64 version:

                              For the log :
                              cat .cache/upstart/OwncloudSyncd.log

                              Hm no, that file does not exist... which is one more indicator for, that owncloudsync daemon could not be started.

                              Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

                              E 1 Reply Last reply Reply Quote 0
                              • E Offline
                                ernest @Luksus
                                last edited by

                                @Luksus
                                Are you using my version or yours ?

                                LuksusL 1 Reply Last reply Reply Quote 0
                                • LuksusL Offline
                                  Luksus @ernest
                                  last edited by Luksus

                                  @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.

                                  Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

                                  E 1 Reply Last reply Reply Quote 0
                                  • poVoqP Offline
                                    poVoq
                                    last edited by poVoq

                                    Maybe a different library could be used? Something like this?
                                    https://github.com/strukturag/qwebdavlib/tree/devel

                                    Edit: or maybe these in Python:
                                    https://github.com/hevp/compact-dav
                                    https://github.com/alexnsl/nc-sync

                                    Edit or in Rust:
                                    https://github.com/budde25/nextcloud-client-cli

                                    Fairphone 5 (waiting for port)

                                    1 Reply Last reply Reply Quote 1
                                    • E Offline
                                      ernest @Luksus
                                      last edited by

                                      @Luksus

                                      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.

                                      LuksusL 1 Reply Last reply Reply Quote 0
                                      • LuksusL Offline
                                        Luksus @ernest
                                        last edited by Luksus

                                        @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?!

                                        Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

                                        E 1 Reply Last reply Reply Quote 0
                                        • E Offline
                                          ernest @Luksus
                                          last edited by

                                          @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.
                                          527cb767-6bc0-49dd-a6f1-5bb22f3a595f-image.png

                                          Look into .config/ubsync/ubsync.conf, ensure that your timer is different than 0

                                          LuksusL 1 Reply Last reply Reply Quote 0
                                          • LuksusL Offline
                                            Luksus @ernest
                                            last edited by Luksus

                                            @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.

                                            Devices: BQ e4.5, Fairphone 2, Fairphone 3, Lenovo X605F, Pinephone, Moto Z2 Force, OnePlus5T

                                            E R 2 Replies Last reply Reply Quote 1
                                            • E Offline
                                              ernest @Luksus
                                              last edited by

                                              @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"

                                              LuksusL 1 Reply Last reply Reply Quote -1
                                              • First post
                                                Last post