diff --git a/.gitignore b/.gitignore index b3fd284..9159715 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,10 @@ /syncthing-source-v1.20.1.tar.gz /syncthing-source-v1.20.2.tar.gz /syncthing-source-v1.20.3.tar.gz +/syncthing-source-v1.20.4.tar.gz +/syncthing-source-v1.21.0.tar.gz +/syncthing-source-v1.22.0.tar.gz +/syncthing-source-v1.23.0.tar.gz +/syncthing-source-v1.23.1.tar.gz +/syncthing-source-v1.23.2.tar.gz +/syncthing-source-v1.23.4.tar.gz diff --git a/0d64427.patch b/0d64427.patch deleted file mode 100644 index 6bc6c77..0000000 --- a/0d64427.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 0d6442721aecadf685a16cca0ef874df468b2009 Mon Sep 17 00:00:00 2001 -From: Simon Frei -Date: Tue, 3 Dec 2019 15:11:39 +0100 -Subject: [PATCH] lib/protocol: Decrease runtime/mem usage of bufferpool - stresstest (ref #6209) - ---- - lib/protocol/bufferpool_test.go | 58 +++++++++++++++++++++------------ - 1 file changed, 38 insertions(+), 20 deletions(-) - -diff --git a/lib/protocol/bufferpool_test.go b/lib/protocol/bufferpool_test.go -index ab889ba88f..f7c6f67ce3 100644 ---- a/lib/protocol/bufferpool_test.go -+++ b/lib/protocol/bufferpool_test.go -@@ -3,7 +3,6 @@ - package protocol - - import ( -- "sync" - "testing" - "time" - -@@ -70,18 +69,47 @@ func TestStressBufferPool(t *testing.T) { - } - - const routines = 10 -- const runtime = 2 * time.Second - - bp := newBufferPool() -- t0 := time.Now() - -- var wg sync.WaitGroup -+ timeout := time.After(2 * time.Second) -+ done := make(chan struct{}) -+ checkDone := func() bool { -+ if bp.puts == 0 || bp.skips == 0 || bp.misses == 0 { -+ return false -+ } -+ var hits int64 -+ for _, h := range bp.hits { -+ hits += h -+ } -+ return hits > 0 -+ } -+ -+ go func() { -+ for { -+ select { -+ case <-time.After(50 * time.Millisecond): -+ if checkDone() { -+ close(done) -+ return -+ } -+ case <-timeout: -+ return -+ } -+ } -+ }() -+ - fail := make(chan struct{}, routines) - for i := 0; i < routines; i++ { -- wg.Add(1) - go func() { -- defer wg.Done() -- for time.Since(t0) < runtime { -+ for { -+ select { -+ case <-done: -+ return -+ case <-timeout: -+ return -+ default: -+ } - blocks := make([][]byte, 10) - for i := range blocks { - // Request a block of random size with the range -@@ -101,24 +129,14 @@ func TestStressBufferPool(t *testing.T) { - }() - } - -- wg.Wait() - select { - case <-fail: - t.Fatal("a block was bad size") -+ case <-done: -+ case <-timeout: -+ t.Fatal("timed out before exercising all paths") - default: - } -- -- t.Log(bp.puts, bp.skips, bp.misses, bp.hits) -- if bp.puts == 0 || bp.skips == 0 || bp.misses == 0 { -- t.Error("didn't exercise some paths") -- } -- var hits int64 -- for _, h := range bp.hits { -- hits += h -- } -- if hits == 0 { -- t.Error("didn't exercise some paths") -- } - } - - func shouldPanic(t *testing.T, fn func()) { diff --git a/sources b/sources index deb5f12..5cd3c29 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (syncthing-source-v1.20.3.tar.gz) = 153420546ee35ed504e56d23167d803c28c2d3ba97f3f8d4a361489f1fc293e802998a8762fcf9f6986d2aebd9b7c04335f0fb8aa476cfeed41255d6bd7cd857 +SHA512 (syncthing-source-v1.23.4.tar.gz) = cf86b61af000e2b9555f1dee0dfc6c340254859b753d3af2d88ea7de8f49137e7dea2bc98a6d8e526b35707918761f010a93ff8ee243f49945364f2e7f928ae3 diff --git a/syncthing.spec b/syncthing.spec index 0e50347..7b8749f 100644 --- a/syncthing.spec +++ b/syncthing.spec @@ -1,6 +1,6 @@ %bcond_with devel -%global basever 1.20.3 +%global basever 1.23.4 #%%global rcnum 0 Name: syncthing @@ -23,10 +23,6 @@ URL: https://syncthing.net # use official release tarball (contains vendored dependencies) Source0: %{gourl}/releases/download/%{tag}/%{name}-source-%{tag}.tar.gz -# rejected patch to fix tests running out of memory on 32 bit arches -# See: https://github.com/syncthing/syncthing/issues/6209 -Patch0: https://github.com/imsodin/syncthing/commit/0d64427.patch - BuildRequires: desktop-file-utils BuildRequires: systemd-rpm-macros @@ -51,41 +47,39 @@ Provides: bundled(moment) = 2.19.4 # generate with "./vendor2provides.py path/to/vendor/modules.txt" # github.com/AudriusButkevicius/pfilter : MIT -Provides: bundled(golang(github.com/AudriusButkevicius/pfilter)) = 0.0.10 +Provides: bundled(golang(github.com/AudriusButkevicius/pfilter)) = 0.0.11 # github.com/AudriusButkevicius/recli : MPLv2.0 Provides: bundled(golang(github.com/AudriusButkevicius/recli)) = 0.0.6 # github.com/Azure/go-ntlmssp : MIT -Provides: bundled(golang(github.com/Azure/go-ntlmssp)) = 6637195 +Provides: bundled(golang(github.com/Azure/go-ntlmssp)) = 754e693 # github.com/alecthomas/kong : MIT -Provides: bundled(golang(github.com/alecthomas/kong)) = 0.6.1 +Provides: bundled(golang(github.com/alecthomas/kong)) = 0.7.1 # github.com/beorn7/perks : MIT Provides: bundled(golang(github.com/beorn7/perks)) = 1.0.1 +# github.com/calmh/incontainer : MIT +Provides: bundled(golang(github.com/calmh/incontainer)) = b3e71b1 # github.com/calmh/xdr : MIT Provides: bundled(golang(github.com/calmh/xdr)) = 1.1.0 # github.com/ccding/go-stun : ASL 2.0 -Provides: bundled(golang(github.com/ccding/go-stun)) = 0.1.3 +Provides: bundled(golang(github.com/ccding/go-stun)) = 0.1.4 # github.com/certifi/gocertifi : MPLv2.0 Provides: bundled(golang(github.com/certifi/gocertifi)) = 431795d # github.com/cespare/xxhash : MIT -Provides: bundled(golang(github.com/cespare/xxhash/v2)) = 2.1.2 -# github.com/cheekybits/genny : MIT -Provides: bundled(golang(github.com/cheekybits/genny)) = 1.0.0 +Provides: bundled(golang(github.com/cespare/xxhash/v2)) = 2.2.0 # github.com/chmduquesne/rollinghash : MIT -Provides: bundled(golang(github.com/chmduquesne/rollinghash)) = a60f8e7 +Provides: bundled(golang(github.com/chmduquesne/rollinghash)) = 4.0.0+incompatible # github.com/cpuguy83/go-md2man : MIT -Provides: bundled(golang(github.com/cpuguy83/go-md2man/v2)) = 2.0.1 +Provides: bundled(golang(github.com/cpuguy83/go-md2man/v2)) = 2.0.2 # github.com/d4l3k/messagediff : MIT Provides: bundled(golang(github.com/d4l3k/messagediff)) = 1.2.1 # github.com/flynn-archive/go-shlex : ASL 2.0 Provides: bundled(golang(github.com/flynn-archive/go-shlex)) = 3f9db97 -# github.com/fsnotify/fsnotify : BSD -Provides: bundled(golang(github.com/fsnotify/fsnotify)) = 1.5.1 # github.com/getsentry/raven-go : BSD Provides: bundled(golang(github.com/getsentry/raven-go)) = 0.2.0 # github.com/go-asn1-ber/asn1-ber : MIT -Provides: bundled(golang(github.com/go-asn1-ber/asn1-ber)) = 1.5.3 +Provides: bundled(golang(github.com/go-asn1-ber/asn1-ber)) = 1.5.4 # github.com/go-ldap/ldap : MIT -Provides: bundled(golang(github.com/go-ldap/ldap/v3)) = 3.4.1 +Provides: bundled(golang(github.com/go-ldap/ldap/v3)) = 3.4.4 # github.com/go-ole/go-ole : MIT Provides: bundled(golang(github.com/go-ole/go-ole)) = 1.2.6 # github.com/go-task/slim-sprig : MIT @@ -94,16 +88,18 @@ Provides: bundled(golang(github.com/go-task/slim-sprig)) = 348f09d Provides: bundled(golang(github.com/gobwas/glob)) = 0.2.3 # github.com/gogo/protobuf : BSD Provides: bundled(golang(github.com/gogo/protobuf)) = 1.3.2 -# github.com/golang/groupcache : ASL 2.0 -Provides: bundled(golang(github.com/golang/groupcache)) = 41bb18b +# github.com/golang/mock : ASL 2.0 +Provides: bundled(golang(github.com/golang/mock)) = 1.6.0 # github.com/golang/protobuf : BSD -Provides: bundled(golang(github.com/golang/protobuf)) = 1.5.2 +Provides: bundled(golang(github.com/golang/protobuf)) = 1.5.3 # github.com/golang/snappy : BSD Provides: bundled(golang(github.com/golang/snappy)) = 0.0.4 +# github.com/google/pprof : ASL 2.0 +Provides: bundled(golang(github.com/google/pprof)) = d61513b # github.com/greatroar/blobloom : ASL 2.0 -Provides: bundled(golang(github.com/greatroar/blobloom)) = 0.7.0 +Provides: bundled(golang(github.com/greatroar/blobloom)) = 0.7.2 # github.com/hashicorp/golang-lru : MPLv2.0 -Provides: bundled(golang(github.com/hashicorp/golang-lru)) = 0.5.4 +Provides: bundled(golang(github.com/hashicorp/golang-lru/v2)) = 2.0.2 # github.com/jackpal/gateway : BSD Provides: bundled(golang(github.com/jackpal/gateway)) = 1.0.7 # github.com/jackpal/go-nat-pmp : ASL 2.0 @@ -113,51 +109,47 @@ Provides: bundled(golang(github.com/julienschmidt/httprouter)) = 1.3.0 # github.com/kballard/go-shellquote : MIT Provides: bundled(golang(github.com/kballard/go-shellquote)) = 95032a8 # github.com/klauspost/cpuid : MIT -Provides: bundled(golang(github.com/klauspost/cpuid/v2)) = 2.0.9 +Provides: bundled(golang(github.com/klauspost/cpuid/v2)) = 2.2.4 # github.com/lib/pq : MIT -Provides: bundled(golang(github.com/lib/pq)) = 1.10.3 -# github.com/lucas-clemente/quic-go : MIT -Provides: bundled(golang(github.com/lucas-clemente/quic-go)) = 0.27.0 -# github.com/marten-seemann/qtls-go1-16 : BSD -Provides: bundled(golang(github.com/marten-seemann/qtls-go1-16)) = 0.1.5 -# github.com/marten-seemann/qtls-go1-17 : BSD -Provides: bundled(golang(github.com/marten-seemann/qtls-go1-17)) = 0.1.1 -# github.com/marten-seemann/qtls-go1-18 : BSD -Provides: bundled(golang(github.com/marten-seemann/qtls-go1-18)) = 0.1.1 +Provides: bundled(golang(github.com/lib/pq)) = 1.10.7 # github.com/maruel/panicparse : ASL 2.0 -Provides: bundled(golang(github.com/maruel/panicparse)) = 1.6.1 +Provides: bundled(golang(github.com/maruel/panicparse/v2)) = 2.3.1 # github.com/matttproud/golang_protobuf_extensions : ASL 2.0 -Provides: bundled(golang(github.com/matttproud/golang_protobuf_extensions)) = 1.0.1 +Provides: bundled(golang(github.com/matttproud/golang_protobuf_extensions)) = 1.0.4 # github.com/maxbrunsfeld/counterfeiter : MIT -Provides: bundled(golang(github.com/maxbrunsfeld/counterfeiter/v6)) = 6.3.0 +Provides: bundled(golang(github.com/maxbrunsfeld/counterfeiter/v6)) = 6.5.0 # github.com/minio/sha256-simd : ASL 2.0 Provides: bundled(golang(github.com/minio/sha256-simd)) = 1.0.0 # github.com/miscreant/miscreant.go : MIT Provides: bundled(golang(github.com/miscreant/miscreant.go)) = 26d3763 -# github.com/nxadm/tail : MIT -Provides: bundled(golang(github.com/nxadm/tail)) = 1.4.8 # github.com/onsi/ginkgo : MIT -Provides: bundled(golang(github.com/onsi/ginkgo)) = 1.16.4 +Provides: bundled(golang(github.com/onsi/ginkgo/v2)) = 2.9.0 # github.com/oschwald/geoip2-golang : ISC -Provides: bundled(golang(github.com/oschwald/geoip2-golang)) = 1.5.0 +Provides: bundled(golang(github.com/oschwald/geoip2-golang)) = 1.8.0 # github.com/oschwald/maxminddb-golang : ISC -Provides: bundled(golang(github.com/oschwald/maxminddb-golang)) = 1.8.0 +Provides: bundled(golang(github.com/oschwald/maxminddb-golang)) = 1.10.0 # github.com/petermattis/goid : ASL 2.0 -Provides: bundled(golang(github.com/petermattis/goid)) = b0b1615 +Provides: bundled(golang(github.com/petermattis/goid)) = 8ff7bb2 # github.com/pierrec/lz4 : BSD -Provides: bundled(golang(github.com/pierrec/lz4/v4)) = 4.1.15 +Provides: bundled(golang(github.com/pierrec/lz4/v4)) = 4.1.17 # github.com/pkg/errors : BSD Provides: bundled(golang(github.com/pkg/errors)) = 0.9.1 # github.com/power-devops/perfstat : MIT -Provides: bundled(golang(github.com/power-devops/perfstat)) = 5aafc22 +Provides: bundled(golang(github.com/power-devops/perfstat)) = 62379fc # github.com/prometheus/client_golang : ASL 2.0 -Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.12.2 +Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.14.0 # github.com/prometheus/client_model : ASL 2.0 -Provides: bundled(golang(github.com/prometheus/client_model)) = 0.2.0 +Provides: bundled(golang(github.com/prometheus/client_model)) = 0.3.0 # github.com/prometheus/common : ASL 2.0 -Provides: bundled(golang(github.com/prometheus/common)) = 0.32.1 +Provides: bundled(golang(github.com/prometheus/common)) = 0.42.0 # github.com/prometheus/procfs : ASL 2.0 -Provides: bundled(golang(github.com/prometheus/procfs)) = 0.7.3 +Provides: bundled(golang(github.com/prometheus/procfs)) = 0.9.0 +# github.com/quic-go/qtls-go1-19 : BSD-3-Clause +Provides: bundled(golang(github.com/quic-go/qtls-go1-19)) = 0.2.1 +# github.com/quic-go/qtls-go1-20 : BSD-3-Clause +Provides: bundled(golang(github.com/quic-go/qtls-go1-20)) = 0.1.1 +# github.com/quic-go/quic-go : MIT +Provides: bundled(golang(github.com/quic-go/quic-go)) = 0.33.0 # github.com/rcrowley/go-metrics : BSD Provides: bundled(golang(github.com/rcrowley/go-metrics)) = cf1acfc # github.com/russross/blackfriday : BSD @@ -165,47 +157,37 @@ Provides: bundled(golang(github.com/russross/blackfriday/v2)) = 2.1.0 # github.com/sasha-s/go-deadlock : ASL 2.0 Provides: bundled(golang(github.com/sasha-s/go-deadlock)) = 0.3.1 # github.com/shirou/gopsutil : BSD -Provides: bundled(golang(github.com/shirou/gopsutil/v3)) = 3.21.12 +Provides: bundled(golang(github.com/shirou/gopsutil/v3)) = 3.23.2 # github.com/syncthing/notify : MIT Provides: bundled(golang(github.com/syncthing/notify)) = c6b7342 # github.com/syndtr/goleveldb : BSD -Provides: bundled(golang(github.com/syndtr/goleveldb)) = d9e9293 +Provides: bundled(golang(github.com/syndtr/goleveldb)) = 126854a # github.com/thejerf/suture : MIT Provides: bundled(golang(github.com/thejerf/suture/v4)) = 4.0.2 # github.com/urfave/cli : MIT -Provides: bundled(golang(github.com/urfave/cli)) = 1.22.5 +Provides: bundled(golang(github.com/urfave/cli)) = 1.22.12 # github.com/vitrun/qart : ASL 2.0 and BSD Provides: bundled(golang(github.com/vitrun/qart)) = bf64b92 # github.com/yusufpapurcu/wmi : MIT Provides: bundled(golang(github.com/yusufpapurcu/wmi)) = 1.2.2 # golang.org/x/crypto : BSD -Provides: bundled(golang(golang.org/x/crypto)) = 089bfa5 +Provides: bundled(golang(golang.org/x/crypto)) = 0.7.0 +# golang.org/x/exp : BSD +Provides: bundled(golang(golang.org/x/exp)) = 24139be # golang.org/x/mod : BSD -Provides: bundled(golang(golang.org/x/mod)) = 0.5.1 +Provides: bundled(golang(golang.org/x/mod)) = 0.9.0 # golang.org/x/net : BSD -Provides: bundled(golang(golang.org/x/net)) = 3ad01bb +Provides: bundled(golang(golang.org/x/net)) = 0.8.0 # golang.org/x/sys : BSD -Provides: bundled(golang(golang.org/x/sys)) = da31bd3 +Provides: bundled(golang(golang.org/x/sys)) = 0.6.0 # golang.org/x/text: BSD -Provides: bundled(golang(golang.org/x/text)) = 0.3.7 +Provides: bundled(golang(golang.org/x/text)) = 0.8.0 # golang.org/x/time : BSD -Provides: bundled(golang(golang.org/x/time)) = 1f47c86 +Provides: bundled(golang(golang.org/x/time)) = 0.3.0 # golang.org/x/tools : BSD -Provides: bundled(golang(golang.org/x/tools)) = 0.1.7 -# golang.org/x/xerrors : BSD -Provides: bundled(golang(golang.org/x/xerrors)) = 5ec99f8 +Provides: bundled(golang(golang.org/x/tools)) = 0.7.0 # google.golang.org/protobuf : BSD -Provides: bundled(golang(google.golang.org/protobuf)) = 1.27.1 -# gopkg.in/tomb.v1 : BSD -Provides: bundled(golang(gopkg.in/tomb.v1)) = dd63297 - -# an inotify filesystem watcher is integrated with syncthing now -Provides: syncthing-inotify = 0.8.7-5 -Obsoletes: syncthing-inotify < 0.8.7-5 - -# command line interface for syncthing was merged into main binary -Obsoletes: syncthing-cli < 1.15.1-1 - +Provides: bundled(golang(google.golang.org/protobuf)) = 1.29.0 %description Syncthing replaces other file synchronization services with something @@ -324,10 +306,11 @@ mkdir -p %{buildroot}/%{_datadir}/applications cp -pav etc/linux-desktop/syncthing-start.desktop %{buildroot}/%{_datadir}/applications/ cp -pav etc/linux-desktop/syncthing-ui.desktop %{buildroot}/%{_datadir}/applications/ -mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/{32,64,128,256,512,scalable}/apps for size in 32 64 128 256 512; do - cp -pav assets/logo-$size.png %{buildroot}/%{_datadir}/icons/hicolor/$size/apps/syncthing.png + mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/${size}x${size}/apps + cp -pav assets/logo-${size}.png %{buildroot}/%{_datadir}/icons/hicolor/${size}x${size}/apps/syncthing.png done +mkdir -p %{buildroot}/%{_datadir}/icons/hicolor/scalable/apps cp -pav assets/logo-only.svg %{buildroot}/%{_datadir}/icons/hicolor/scalable/apps/syncthing.svg # install systemd units @@ -367,7 +350,11 @@ export GO111MODULE=off %gotest %{goipath}/lib/dialer %gotest %{goipath}/lib/discover %gotest %{goipath}/lib/events -%gotest %{goipath}/lib/fs + +# This test fails on SELinux-enabled systems: +# https://github.com/syncthing/syncthing/issues/8601 +%gotest %{goipath}/lib/fs || : + %gotest %{goipath}/lib/ignore %gotest %{goipath}/lib/logger @@ -378,7 +365,13 @@ export GO111MODULE=off %gotest %{goipath}/lib/nat %gotest %{goipath}/lib/osutil %gotest %{goipath}/lib/pmp + +# lib/protocol tests run out of memory on 32 bit arches: +# https://github.com/syncthing/syncthing/issues/6209 +%ifnarch %{arm} %{ix86} %gotest %{goipath}/lib/protocol +%endif + %gotest %{goipath}/lib/rand %gotest %{goipath}/lib/relay/client %gotest %{goipath}/lib/relay/protocol