-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Syncthing: Update to v2.0.12 #6865
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Build with native Go toolchain and drop legacy ARMv5 support.
|
@mreid-tt please let @acolomb join in. see #6721 (comment) AFAICR a package update has to ensure that syncthing was autoupdated to 2.x before the update. |
b9e0c15 to
7d823d7
Compare
|
@mreid-tt there is no need for such "staging sqlite" No need to install sqlite libraries, those are already installed into workdir/install/... The real issue here is, that cgo (the go c compiler) defines an argument I faced a similar issue in cross/helix, but this was with rust and I had to patch the compiler crate to fix this. I have no idea how the cgo works and didn't find a way so far to make the build verbose to find the cause... |
|
@mreid-tt we can't build syncthing with dependency to libsqlite.so The syncthing build does not support builds with CGO_ENABLED (despite the dev docs say so). BUT even if we could cross compile, it is worth nothing, because of the autoupdate. BTW we need to create syncthing v2.0.11 to test the autoupdate at first installation (and dont't forget to test a package update with an installation that already is auto updated to v2.0.12 to verify that it does not downgrade). @acolomb is there really an sqlite performance issue with the official syncthing binaries? |
Not that I know of, quite the contrary. The official builds have been configured to use the best-performing variant. I've read reports about some Docker images which were produced and distributed by third parties, where the performance was less than optimal. IIRC they ended up with the "modernc" build, see e.g. here. I don't see any need to make sure the installed version has previously auto-updated to v2 before installing the new package. What we do need to avoid is "upgrading" to an SPK containing an older version than the one already obtained through auto-upgrades. But that is already handled for a few years, by simply not replacing the binary if it's already newer. We should check again how that version check works though, as some early v2.0.x versions didn't accept I think we're fine building the way we did so far. As a "trust anchor", the SPK contains a version built from verified source. That one should use the cross-compiled libsqlite, which probably won't require installation on the system though, as the Go binaries are statically linked IIRC. The internal upgrader then replaces that trusted binary with a newer one, while keeping the trust chain intact through its internal signature verification. The trust basically shifts from Syncthing's source code + SynoCommunity's build scripts to solely the digitally signed binaries from the Syncthing Foundation. What part in that scenario are you having build troubles with? |
Description
This PR includes the following:
Fixes #6721
Checklist
all-supportedcompleted successfullyType of change