Native Support for Apple Silicon

A native Apple Silicone App is under development: SeaDrive 2.0.10 released! Windows context menu extension and M1 CPU support for Mac

1 Like

Unless I’m mistake that’s the seadrive client which is different from the regular client I use. Although it certainly isn’t urgent, an update to both would be nice.

1 Like

Another +1 request for Seafile client to be compiled natively for Apple Silicon.

3 Likes

+1 here too :wink:

1 Like

Not only M1, but support for arm64 architecture in general from both Drive and desktop client.

1 Like

After much pain I was able to compile the seafile-applet exectuable on my M1 laptop following the build guides it won’t let me link here. Unfortunately I have no idea how to distribute an app since there’s no documentation on that and there are so many dependencies. It should be quite easy for anyone on the seafile team to do if they have an M1. If nobody does I’d be happy to be reached out to and I could compile.

2 Likes

@daniel.pan did you see the above from @tkreind ? looks like all dependencies are now in order for compiling for M1/ARM64 on Seafile Sync Client. :partying_face:

We will work on in the next half of this year.

2 Likes

@tkreind Where do you find Qt build with native M1 support? As far as I know there is no official support for it yet: https://bugreports.qt.io/browse/QTBUG-85279

Hello @Jonathan,

Thank you so much for looking into this! I’m really passionate about getting native Apple Silicon support for the sync client!

Do you think it’s just a matter of compiling Qt on an M1 so you have the binaries for inclusion in the sync build? Like it mentions in the ticket:

I agree it is nicer if Qt would build the binaries themselves, and it looks like they will, but I wonder if this is how @tkreind has solved the challenge.

:slight_smile:

Martin

So the way I got QT working was a little unconventional, I was having a significant amount of trouble getting Macports to dump out the correct frameworks I needed, and the online installer like in the guide isn’t build for M1, so I actually used homebrew for that part, simply by installing qt5.15 (brew install qt@5), arranging my path correctly so macports was the only install on my path (not homebrew) which I did using a specialized shell I use for macports things. I then set the following environment variables before build.

export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig
export LIBTOOL=glibtool
export LIBTOOLIZE=glibtoolize
export CPPFLAGS="-I/opt/local/include -I/usr/local/include"
export LDFLAGS="-L/opt/local/lib -L/usr/local/lib -Wl,-headerpad_max_install_names"

export Qt5_DIR=/opt/homebrew/Cellar/qt@5/5.15.2/lib/cmake/Qt5

After that pretty much everything build, with only a few qt version difference compiler errors which I fixed at (shoot can’t add links, look for a recent pull request to seafile-client branch 7.0 by tkreind).

Once that was done and all dependencies were prior compiled (one of which needs apple clang, one which needs apple gcc, and another that needs pure homebrew/macports gcc 10 iirc, seriously someone should fix that) it was simply a matter of creating xcode build output with cmake.

mkdir build
cmake .. -G Xcode

There was one or two missing image dependencies when done this way that I simply copied to the build folder but it was pretty obvious in Xcode. After that I had a working .app file that I’ve been using since I last posted here with no issues. I don’t know how to bundle the dependencies in in xcode, I really tried but I kept messing with the signing of it, as is it depends on my macports and homebrew binaries I have installed. If anyone wants to walk me through that process I’d be glad to send someone my working version.

Also I don’t think the findersync extension works atm but I don’t really care about that and didn’t put any effort into making it work.

1 Like

@Jonathan does this help (see: replies above).

@drmartin @tkreind Thank you for your contributions. However we’d like to wait for Qt official to support native M1, instead of making a non-standard build environment.

It seems that Qt have release a beta version which supports Apple Silicon chip (h*ttps://www.qt.io/blog/qt-on-apple-silicon).@Jonathan

1 Like

@86688668 Thank you for the information. We’ll try it out. But it’s still in preview so we don’t expect to release based on this version in the short term. Upgrading to 6.2 also requires some work.

Are there already any news here?

Any luck for us M1 users who aren’t allowed to use Rosetta?

Why can’t you use Rosetta?

Since Qt 6.2 LTS was released on 2021-09-30, I wanted to ask if there is any progress here? Is M1 support planned in the near future? Would love to get that without needing Rosetta.

1 Like

My organisation doesn’t allow it because they believe it increases the attack surface, since it would make it possible to be attacked by x86 malware.

Agreed - really would like to use sync!