Native Support for Apple Silicon

As of v7.0.10 the Seafile client works fine on Big Sur and Apple Silicon M1 (I have been evaluating the last few days).

Unfortunately, it only runs in Intel compatibility mode using Rosetta2. Please add native support for ARM Processors.

3 Likes

I would also really appreciate native support. I’m not a project contributor but I tried to compile it myself from the Github. I failed to compile libsearpc as they have some weird dependencies going on that I can’t figure out, but from a look through everything should work with one simple compile as QT and such all work perfect on apple silicon.

1 Like

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

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.

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