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.
      • 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
                      • LuksusL Offline
                        Luksus @ernest
                        last edited by

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

                        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 Yes, the architecture is hardcoded everywhere in this app 😕

                          1 Reply Last reply Reply Quote 0
                          • R Offline
                            ruedigerkupper @Luksus
                            last edited by ruedigerkupper

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

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

                              @ruedigerkupper I think @ernest just should put his arm64 version in the store...

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

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

                                  @ernest in openstore you can just upload click packages for every arch separately.
                                  I don't get the problem.

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

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

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

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

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

                                          @ernest to know, waht is needed to integrate the build of the lib into the clickable build...in the end with different architectures.

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

                                          B 1 Reply Last reply Reply Quote 0
                                          • B Offline
                                            belohoub @Luksus
                                            last edited by belohoub

                                            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

                                            TotalSonicT E 2 Replies Last reply Reply Quote 2
                                            • TotalSonicT Offline
                                              TotalSonic @belohoub
                                              last edited by

                                              @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

                                              1 Reply Last reply Reply Quote 0
                                              • First post
                                                Last post