mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-13 00:58:32 +00:00
chore(fs): build kqueue instead of fsevents watcher on iOS (#9950)
### Purpose On iOS, the FSEvents API for watching files (also used on macOS) is not available, but `kqueue` is. This PR ensures `kqueue` support is built on iOS instead of the FSEvents based watcher implementation. Before this PR, you could already use the `kqueue` build option to force its usage. Unfortunately `gomobile`, the tool that I use to build Syncthing for iOS and macOS for Synctrain, does not support setting different build flags for iOS and macOS (unless I build separately for each, which is a bit of a hassle because XCode nonsense). I am assuming there are good reasons to support FSEvents even though `kqueue` is also available on macOS (but I'm not sure why?). I do know FSEvents has been working fine for me on macOS so it seems best to use FSEvents on macOS and kqueue on iOS. Note that this also requires https://github.com/syncthing/notify/pull/4 to be merged in `synchting/notify` (until that is done, this PR will fail to build on iOS due to `notify` still trying to link to `fsevents` stuff when the `kqueue` build flag is not set). ### Testing I compiled both `syncthing/notify` and syncthing with this PR applied, and used that to successfully build the Synctrain iOS app, which after this PR works fine and should follow up file changes a bit quicker. ### Screenshots n/a ### Documentation n/a ## Authorship Your name and email will be added automatically to the AUTHORS file based on the commit metadata. --------- Co-authored-by: Jakob Borg <jakob@kastelo.net>
This commit is contained in:
parent
87c16c6cf5
commit
28f0cffdb6
2
go.mod
2
go.mod
@ -32,7 +32,7 @@ require (
|
||||
github.com/rabbitmq/amqp091-go v1.10.0
|
||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475
|
||||
github.com/shirou/gopsutil/v4 v4.25.1
|
||||
github.com/syncthing/notify v0.0.0-20210616190510-c6b7342338d2
|
||||
github.com/syncthing/notify v0.0.0-20250207082249-f0fa8f99c2bc
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d
|
||||
github.com/thejerf/suture/v4 v4.0.6
|
||||
github.com/urfave/cli v1.22.16
|
||||
|
4
go.sum
4
go.sum
@ -227,8 +227,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/syncthing/notify v0.0.0-20210616190510-c6b7342338d2 h1:F4snRP//nIuTTW9LYEzVH4HVwDG9T3M4t8y/2nqMbiY=
|
||||
github.com/syncthing/notify v0.0.0-20210616190510-c6b7342338d2/go.mod h1:J0q59IWjLtpRIJulohwqEZvjzwOfTEPp8SVhDJl+y0Y=
|
||||
github.com/syncthing/notify v0.0.0-20250207082249-f0fa8f99c2bc h1:xc3UfSFlH/X5hRw3h21RF6WXnRUYKmGRx06FEaVxfkM=
|
||||
github.com/syncthing/notify v0.0.0-20250207082249-f0fa8f99c2bc/go.mod h1:J0q59IWjLtpRIJulohwqEZvjzwOfTEPp8SVhDJl+y0Y=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs=
|
||||
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48=
|
||||
github.com/thejerf/suture/v4 v4.0.6 h1:QsuCEsCqb03xF9tPAsWAj8QOAJBgQI1c0VqJNaingg8=
|
||||
|
@ -4,12 +4,11 @@
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
//go:build !(solaris && !cgo) && !(darwin && !cgo) && !(darwin && kqueue) && !(android && amd64) && !ios
|
||||
//go:build !(solaris && !cgo) && !(darwin && !cgo) && !(darwin && kqueue) && !(android && amd64)
|
||||
// +build !solaris cgo
|
||||
// +build !darwin cgo
|
||||
// +build !darwin !kqueue
|
||||
// +build !android !amd64
|
||||
// +build !ios
|
||||
|
||||
package fs
|
||||
|
||||
|
@ -4,8 +4,8 @@
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
//go:build dragonfly || freebsd || netbsd || openbsd
|
||||
// +build dragonfly freebsd netbsd openbsd
|
||||
//go:build dragonfly || freebsd || netbsd || openbsd || ios || kqueue
|
||||
// +build dragonfly freebsd netbsd openbsd ios kqueue
|
||||
|
||||
package fs
|
||||
|
||||
|
@ -4,8 +4,8 @@
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
//go:build !dragonfly && !freebsd && !netbsd && !openbsd
|
||||
// +build !dragonfly,!freebsd,!netbsd,!openbsd
|
||||
//go:build !dragonfly && !freebsd && !netbsd && !openbsd && !kqueue && !ios
|
||||
// +build !dragonfly,!freebsd,!netbsd,!openbsd,!kqueue,!ios
|
||||
|
||||
package fs
|
||||
|
||||
|
@ -4,8 +4,8 @@
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
//go:build (solaris && !cgo) || (darwin && !cgo) || (android && amd64) || ios || (darwin && kqueue)
|
||||
// +build solaris,!cgo darwin,!cgo android,amd64 ios darwin,kqueue
|
||||
//go:build (solaris && !cgo) || (darwin && !cgo) || (android && amd64) || (darwin && kqueue)
|
||||
// +build solaris,!cgo darwin,!cgo android,amd64 darwin,kqueue
|
||||
|
||||
package fs
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user