diff --git a/.gitignore b/.gitignore index 96d755b..0880485 100644 --- a/.gitignore +++ b/.gitignore @@ -68,30 +68,3 @@ /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 -/syncthing-source-v1.23.5.tar.gz -/syncthing-source-v1.23.6.tar.gz -/syncthing-source-v1.23.7.tar.gz -/syncthing-source-v1.24.0.tar.gz -/syncthing-source-v1.25.0.tar.gz -/syncthing-source-v1.26.0.tar.gz -/syncthing-source-v1.26.1.tar.gz -/syncthing-source-v1.27.1.tar.gz -/syncthing-source-v1.27.2.tar.gz -/syncthing-source-v1.27.3.tar.gz -/syncthing-source-v1.27.4.tar.gz -/syncthing-source-v1.27.6.tar.gz -/syncthing-source-v1.27.7.tar.gz -/syncthing-source-v1.27.9.tar.gz -/syncthing-source-v1.27.12.tar.gz -/syncthing-source-v1.28.0.tar.gz -/syncthing-source-v1.28.1.tar.gz -/syncthing-source-v1.29.3.tar.gz -/syncthing-source-v1.29.5.tar.gz -/syncthing-source-v1.29.6.tar.gz -/syncthing-source-v1.30.0.tar.gz diff --git a/0001-lib-api-api_test-fix-non-constant-format-string.patch b/0001-lib-api-api_test-fix-non-constant-format-string.patch deleted file mode 100644 index 20f22c2..0000000 --- a/0001-lib-api-api_test-fix-non-constant-format-string.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e983a6d622f5ddc7968fdf06bfc6cf0c027444eb Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Wed, 12 Mar 2025 16:42:24 +0100 -Subject: [PATCH 1/2] lib/api/api_test: fix non-constant format string - ---- - lib/api/api_test.go | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/api/api_test.go b/lib/api/api_test.go -index db5df49..301d41c 100644 ---- a/lib/api/api_test.go -+++ b/lib/api/api_test.go -@@ -790,7 +790,7 @@ func TestHtmlFormLogin(t *testing.T) { - t.Errorf("Unexpected non-200 return code %d at %s", resp.StatusCode, noAuthPath) - } - if hasSessionCookie(resp.Cookies()) { -- t.Errorf("Unexpected session cookie at " + noAuthPath) -+ t.Errorf("Unexpected session cookie at %s", noAuthPath) - } - }) - } --- -2.48.1 - diff --git a/0002-lib-ignore-ignore_test-fix-non-constant-format-strin.patch b/0002-lib-ignore-ignore_test-fix-non-constant-format-strin.patch deleted file mode 100644 index 68eb294..0000000 --- a/0002-lib-ignore-ignore_test-fix-non-constant-format-strin.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4a9469f9969c646098a7d23d387aad150de1259c Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Wed, 12 Mar 2025 16:53:32 +0100 -Subject: [PATCH 2/2] lib/ignore/ignore_test: fix non-constant format string - ---- - lib/ignore/ignore_test.go | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/ignore/ignore_test.go b/lib/ignore/ignore_test.go -index 72a0c4d..6ca5267 100644 ---- a/lib/ignore/ignore_test.go -+++ b/lib/ignore/ignore_test.go -@@ -1077,7 +1077,7 @@ func TestIssue4901(t *testing.T) { - - fd, err := pats.fs.Create(".stignore") - if err != nil { -- t.Fatalf(err.Error()) -+ t.Fatalf("%s", err.Error()) - } - if _, err := fd.Write([]byte(stignore)); err != nil { - t.Fatal(err) -@@ -1099,7 +1099,7 @@ func TestIssue4901(t *testing.T) { - - fd, err = pats.fs.Create("unicorn-lazor-death") - if err != nil { -- t.Fatalf(err.Error()) -+ t.Fatalf("%s", err.Error()) - } - if _, err := fd.Write([]byte(" ")); err != nil { - t.Fatal(err) --- -2.48.1 - diff --git a/0d64427.patch b/0d64427.patch new file mode 100644 index 0000000..6bc6c77 --- /dev/null +++ b/0d64427.patch @@ -0,0 +1,104 @@ +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/README.md b/README.md index 320aafb..7864bd6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -# syncthing - ## Usage By default, the syncthing service isn't enabled after installation. Depending on diff --git a/sources b/sources index cb41ca6..e5b9dfd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (syncthing-source-v1.30.0.tar.gz) = 30c69b4dc3373b915da39ecca85c785ecbb19f847b49c1e95e3c5d4417d02415e9a991d3b3d9984f7ae02594d4805c80cf86aba22e33456d352b76a9e5bd3fef +SHA512 (syncthing-source-v1.20.4.tar.gz) = f695cc6d8e6a87b397a11f79f3b5e12565fcea4601da7dd41b681e49913bb48b5164b3648ae68a1d580b77f6a20cc8053e252e24a5c054c52255ece34e90c4f8 diff --git a/syncthing.spec b/syncthing.spec index 563d026..f220c55 100644 --- a/syncthing.spec +++ b/syncthing.spec @@ -1,4 +1,6 @@ -%global basever 1.30.0 +%bcond_with devel + +%global basever 1.20.4 #%%global rcnum 0 Name: syncthing @@ -9,22 +11,21 @@ Release: %autorelease %global goipath github.com/syncthing/syncthing %global tag v%{basever}%{?rcnum:-rc.%{rcnum}} -%gometa -f +%gometa -# syncthing (MPL-2.0) bundles +# syncthing (MPLv2.0) bundles # - angular, bootstrap, daterangepicker, fancytree, jQuery, moment (MIT), -# - HumanizeDuration (MIT OR Unlicense), -# - ForkAwesome (MIT, OFL-1.1, CC-BY-3.0), and -# - a number of go packages (Apache-2.0, BSD-2-Clause, BSD-2-Clause-Views, BSD-3-Clause, ISC, MIT, MPL-2.0) -License: MPL-2.0 AND Apache-2.0 AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND CC-BY-3.0 AND ISC AND MIT AND OFL-1.1 AND (Apache-2.0 OR MIT) AND (MIT OR Unlicense) +# - ForkAwesome (MIT and OFL and CC-BY 3.0), and +# - a number of go packages (MIT and MPLv2.0 and BSD and ASL 2.0 and ISC) +License: MPLv2.0 and MIT and OFL and CC-BY and BSD and ASL 2.0 and ISC URL: https://syncthing.net # use official release tarball (contains vendored dependencies) Source0: %{gourl}/releases/download/%{tag}/%{name}-source-%{tag}.tar.gz -# fix compilation failures caused non-constant format strings -Patch: 0001-lib-api-api_test-fix-non-constant-format-string.patch -Patch: 0002-lib-ignore-ignore_test-fix-non-constant-format-strin.patch +# 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 @@ -40,7 +41,6 @@ Provides: bundled(angular-translate-loader-static-files) = 2.11.0 Provides: bundled(bootstrap) = 3.3.6 Provides: bundled(daterangepicker) = 3.1 Provides: bundled(ForkAwesome) = 1.2.0 -Provides: bundled(HumanizeDuration.js) Provides: bundled(jquery) = 2.2.2 Provides: bundled(jquery-fancytree) = 2.38.0 Provides: bundled(jquery-ui) = 1.12.1 @@ -50,184 +50,162 @@ Provides: bundled(moment) = 2.19.4 # manually check licenses for new deps and update License tag if necessary # generate with "./vendor2provides.py path/to/vendor/modules.txt" -# github.com/AudriusButkevicius/recli : MPL-2.0 -Provides: bundled(golang(github.com/AudriusButkevicius/recli)) = d000ce8 -# github.com/Azure/azure-sdk-for-go : MIT -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/azcore)) = 1.18.0 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/internal)) = 1.11.1 -Provides: bundled(golang(github.com/Azure/azure-sdk-for-go/sdk/storage/azblob)) = 1.6.1 +# github.com/AudriusButkevicius/pfilter : MIT +Provides: bundled(golang(github.com/AudriusButkevicius/pfilter)) = 0.0.10 +# 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)) = 754e693 +Provides: bundled(golang(github.com/Azure/go-ntlmssp)) = 6637195 # github.com/alecthomas/kong : MIT -Provides: bundled(golang(github.com/alecthomas/kong)) = 1.11.0 -# github.com/aws/aws-sdk-go : Apache-2.0 -Provides: bundled(golang(github.com/aws/aws-sdk-go)) = 1.55.7 +Provides: bundled(golang(github.com/alecthomas/kong)) = 0.6.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)) = 1.0.0 # github.com/calmh/xdr : MIT -Provides: bundled(golang(github.com/calmh/xdr)) = 1.2.0 -# github.com/ccding/go-stun : Apache-2.0 -Provides: bundled(golang(github.com/ccding/go-stun)) = 0.1.5 -# github.com/cenkalti/backoff : MIT -Provides: bundled(golang(github.com/cenkalti/backoff/v4)) = 4.3.0 -# github.com/certifi/gocertifi : MPL-2.0 +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 +# 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.3.0 +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 # github.com/chmduquesne/rollinghash : MIT -Provides: bundled(golang(github.com/chmduquesne/rollinghash)) = 4.0.0+incompatible -# github.com/coreos/go-semver : Apache-2.0 -Provides: bundled(golang(github.com/coreos/go-semver)) = 0.3.1 +Provides: bundled(golang(github.com/chmduquesne/rollinghash)) = a60f8e7 # github.com/cpuguy83/go-md2man : MIT -Provides: bundled(golang(github.com/cpuguy83/go-md2man/v2)) = 2.0.5 +Provides: bundled(golang(github.com/cpuguy83/go-md2man/v2)) = 2.0.1 # github.com/d4l3k/messagediff : MIT Provides: bundled(golang(github.com/d4l3k/messagediff)) = 1.2.1 -# github.com/davecgh/go-spew : ISC -Provides: bundled(golang(github.com/davecgh/go-spew)) = 1.1.1 -# github.com/ebitengine/purego : Apache-2.0 -Provides: bundled(golang(github.com/ebitengine/purego)) = 0.8.3 -# github.com/fsnotify/fsnotify : BSD-3-Clause -Provides: bundled(golang(github.com/fsnotify/fsnotify)) = 1.7.0 -# github.com/getsentry/raven-go : BSD-3-Clause +# 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)) = 2923003 +Provides: bundled(golang(github.com/go-asn1-ber/asn1-ber)) = 1.5.3 # github.com/go-ldap/ldap : MIT -Provides: bundled(golang(github.com/go-ldap/ldap/v3)) = 3.4.11 +Provides: bundled(golang(github.com/go-ldap/ldap/v3)) = 3.4.1 # github.com/go-ole/go-ole : MIT -Provides: bundled(golang(github.com/go-ole/go-ole)) = 1.3.0 +Provides: bundled(golang(github.com/go-ole/go-ole)) = 1.2.6 # github.com/go-task/slim-sprig : MIT -Provides: bundled(golang(github.com/go-task/slim-sprig/v3)) = 3.0.0 +Provides: bundled(golang(github.com/go-task/slim-sprig)) = 348f09d # github.com/gobwas/glob : MIT Provides: bundled(golang(github.com/gobwas/glob)) = 0.2.3 -# github.com/gofrs/flock : BSD-3-Clause -Provides: bundled(golang(github.com/gofrs/flock)) = 0.12.1 -# github.com/golang/snappy : BSD-3-Clause +# 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/protobuf : BSD +Provides: bundled(golang(github.com/golang/protobuf)) = 1.5.2 +# github.com/golang/snappy : BSD Provides: bundled(golang(github.com/golang/snappy)) = 0.0.4 -# github.com/google/pprof : Apache-2.0 -Provides: bundled(golang(github.com/google/pprof)) = 337e5dd -# github.com/google/uuid : BSD-3-Clause -Provides: bundled(golang(github.com/google/uuid)) = 1.6.0 -# github.com/greatroar/blobloom : Apache-2.0 -Provides: bundled(golang(github.com/greatroar/blobloom)) = 0.8.0 -# github.com/hashicorp/errwrap : MPL-2.0 -Provides: bundled(golang(github.com/hashicorp/errwrap)) = 1.1.0 -# github.com/hashicorp/go-multierror : MPL-2.0 -Provides: bundled(golang(github.com/hashicorp/go-multierror)) = 1.1.1 -# github.com/hashicorp/golang-lru : MPL-2.0 -Provides: bundled(golang(github.com/hashicorp/golang-lru/v2)) = 2.0.7 -# github.com/jackpal/gateway : BSD-3-Clause -Provides: bundled(golang(github.com/jackpal/gateway)) = 1.0.16 -# github.com/jackpal/go-nat-pmp : Apache-2.0 +# github.com/greatroar/blobloom : ASL 2.0 +Provides: bundled(golang(github.com/greatroar/blobloom)) = 0.7.0 +# github.com/hashicorp/golang-lru : MPLv2.0 +Provides: bundled(golang(github.com/hashicorp/golang-lru)) = 0.5.4 +# github.com/jackpal/gateway : BSD +Provides: bundled(golang(github.com/jackpal/gateway)) = 1.0.7 +# github.com/jackpal/go-nat-pmp : ASL 2.0 Provides: bundled(golang(github.com/jackpal/go-nat-pmp)) = 1.0.2 -# github.com/jmespath/go-jmespath : Apache-2.0 -Provides: bundled(golang(github.com/jmespath/go-jmespath)) = 0.4.0 -# github.com/julienschmidt/httprouter : BSD-3-Clause +# github.com/julienschmidt/httprouter : BSD 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/lufia/plan9stats : BSD-3-Clause -Provides: bundled(golang(github.com/lufia/plan9stats)) = 873cd01 -# github.com/maruel/panicparse : Apache-2.0 -Provides: bundled(golang(github.com/maruel/panicparse/v2)) = 2.5.0 +# github.com/klauspost/cpuid : MIT +Provides: bundled(golang(github.com/klauspost/cpuid/v2)) = 2.0.9 +# 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 +# github.com/maruel/panicparse : ASL 2.0 +Provides: bundled(golang(github.com/maruel/panicparse)) = 1.6.1 +# github.com/matttproud/golang_protobuf_extensions : ASL 2.0 +Provides: bundled(golang(github.com/matttproud/golang_protobuf_extensions)) = 1.0.1 # github.com/maxbrunsfeld/counterfeiter : MIT -Provides: bundled(golang(github.com/maxbrunsfeld/counterfeiter/v6)) = 6.11.2 -# github.com/maxmind/geoipupdate : Apache-2.0 OR MIT -Provides: bundled(golang(github.com/maxmind/geoipupdate/v6)) = 6.1.0 +Provides: bundled(golang(github.com/maxbrunsfeld/counterfeiter/v6)) = 6.3.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/munnerz/goautoneg : BSD-3-Clause -Provides: bundled(golang(github.com/munnerz/goautoneg)) = a7dc8b6 # github.com/nxadm/tail : MIT -Provides: bundled(golang(github.com/nxadm/tail)) = 1.4.11 +Provides: bundled(golang(github.com/nxadm/tail)) = 1.4.8 # github.com/onsi/ginkgo : MIT -Provides: bundled(golang(github.com/onsi/ginkgo/v2)) = 2.23.4 +Provides: bundled(golang(github.com/onsi/ginkgo)) = 1.16.4 # github.com/oschwald/geoip2-golang : ISC -Provides: bundled(golang(github.com/oschwald/geoip2-golang)) = 1.11.0 +Provides: bundled(golang(github.com/oschwald/geoip2-golang)) = 1.5.0 # github.com/oschwald/maxminddb-golang : ISC -Provides: bundled(golang(github.com/oschwald/maxminddb-golang)) = 1.13.1 -# github.com/pierrec/lz4 : BSD-3-Clause -Provides: bundled(golang(github.com/pierrec/lz4/v4)) = 4.1.22 -# github.com/pkg/errors : BSD-2-Clause +Provides: bundled(golang(github.com/oschwald/maxminddb-golang)) = 1.8.0 +# github.com/petermattis/goid : ASL 2.0 +Provides: bundled(golang(github.com/petermattis/goid)) = b0b1615 +# github.com/pierrec/lz4 : BSD +Provides: bundled(golang(github.com/pierrec/lz4/v4)) = 4.1.15 +# github.com/pkg/errors : BSD Provides: bundled(golang(github.com/pkg/errors)) = 0.9.1 -# github.com/pmezard/go-difflib : BSD-3-Clause -Provides: bundled(golang(github.com/pmezard/go-difflib)) = 1.0.0 -# github.com/posener/complete : MIT -Provides: bundled(golang(github.com/posener/complete)) = 1.2.3 # github.com/power-devops/perfstat : MIT -Provides: bundled(golang(github.com/power-devops/perfstat)) = 82ca368 -# github.com/prometheus/client_golang : Apache-2.0 -Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.22.0 -# github.com/prometheus/client_model : Apache-2.0 -Provides: bundled(golang(github.com/prometheus/client_model)) = 0.6.1 -# github.com/prometheus/common : Apache-2.0 -Provides: bundled(golang(github.com/prometheus/common)) = 0.62.0 -# github.com/prometheus/procfs : Apache-2.0 -Provides: bundled(golang(github.com/prometheus/procfs)) = 0.15.1 -# github.com/puzpuzpuz/xsync : Apache-2.0 -Provides: bundled(golang(github.com/puzpuzpuz/xsync/v3)) = 3.5.1 -# github.com/quic-go/quic-go : MIT -Provides: bundled(golang(github.com/quic-go/quic-go)) = 0.52.0 -# github.com/rabbitmq/amqp091-go : BSD-2-Clause -Provides: bundled(golang(github.com/rabbitmq/amqp091-go)) = 1.10.0 -# github.com/rcrowley/go-metrics : BSD-2-Clause-Views -Provides: bundled(golang(github.com/rcrowley/go-metrics)) = 65e299d -# github.com/riywo/loginshell : MIT -Provides: bundled(golang(github.com/riywo/loginshell)) = 7d26008 -# github.com/russross/blackfriday : BSD-2-Clause +Provides: bundled(golang(github.com/power-devops/perfstat)) = 5aafc22 +# github.com/prometheus/client_golang : ASL 2.0 +Provides: bundled(golang(github.com/prometheus/client_golang)) = 1.12.2 +# github.com/prometheus/client_model : ASL 2.0 +Provides: bundled(golang(github.com/prometheus/client_model)) = 0.2.0 +# github.com/prometheus/common : ASL 2.0 +Provides: bundled(golang(github.com/prometheus/common)) = 0.32.1 +# github.com/prometheus/procfs : ASL 2.0 +Provides: bundled(golang(github.com/prometheus/procfs)) = 0.7.3 +# github.com/rcrowley/go-metrics : BSD +Provides: bundled(golang(github.com/rcrowley/go-metrics)) = cf1acfc +# github.com/russross/blackfriday : BSD Provides: bundled(golang(github.com/russross/blackfriday/v2)) = 2.1.0 -# github.com/shirou/gopsutil : BSD-3-Clause -Provides: bundled(golang(github.com/shirou/gopsutil/v4)) = 4.25.4 -# github.com/stretchr/objx : MIT -Provides: bundled(golang(github.com/stretchr/objx)) = 0.5.2 -# github.com/stretchr/testify : MIT -Provides: bundled(golang(github.com/stretchr/testify)) = 1.10.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 # github.com/syncthing/notify : MIT -Provides: bundled(golang(github.com/syncthing/notify)) = c7027d4 -# github.com/syndtr/goleveldb : BSD-2-Clause -Provides: bundled(golang(github.com/syndtr/goleveldb)) = 126854a +Provides: bundled(golang(github.com/syncthing/notify)) = c6b7342 +# github.com/syndtr/goleveldb : BSD +Provides: bundled(golang(github.com/syndtr/goleveldb)) = d9e9293 # github.com/thejerf/suture : MIT -Provides: bundled(golang(github.com/thejerf/suture/v4)) = 4.0.6 -# github.com/tklauser/go-sysconf : BSD-3-Clause -Provides: bundled(golang(github.com/tklauser/go-sysconf)) = 0.3.14 -# github.com/tklauser/numcpus : Apache-2.0 -Provides: bundled(golang(github.com/tklauser/numcpus)) = 0.9.0 +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.16 -# github.com/vitrun/qart : Apache-2.0 AND BSD-3-Clause +Provides: bundled(golang(github.com/urfave/cli)) = 1.22.5 +# github.com/vitrun/qart : ASL 2.0 and BSD Provides: bundled(golang(github.com/vitrun/qart)) = bf64b92 -# github.com/willabides/kongplete : MIT -Provides: bundled(golang(github.com/willabides/kongplete)) = 0.4.0 # github.com/yusufpapurcu/wmi : MIT -Provides: bundled(golang(github.com/yusufpapurcu/wmi)) = 1.2.4 -# go.uber.org/automaxprocs : MIT -Provides: bundled(golang(go.uber.org/automaxprocs)) = 1.6.0 -# go.uber.org/mock : Apache-2.0 -Provides: bundled(golang(go.uber.org/mock)) = 0.5.2 -# golang.org/x/crypto : BSD-3-Clause -Provides: bundled(golang(golang.org/x/crypto)) = 0.38.0 -# golang.org/x/mod : BSD-3-Clause -Provides: bundled(golang(golang.org/x/mod)) = 0.24.0 -# golang.org/x/net : BSD-3-Clause -Provides: bundled(golang(golang.org/x/net)) = 0.40.0 -# golang.org/x/sync : BSD-3-Clause -Provides: bundled(golang(golang.org/x/sync)) = 0.14.0 -# golang.org/x/sys : BSD-3-Clause -Provides: bundled(golang(golang.org/x/sys)) = 0.33.0 -# golang.org/x/text : BSD-3-Clause -Provides: bundled(golang(golang.org/x/text)) = 0.25.0 -# golang.org/x/time : BSD-3-Clause -Provides: bundled(golang(golang.org/x/time)) = 0.11.0 -# golang.org/x/tools : BSD-3-Clause -Provides: bundled(golang(golang.org/x/tools)) = 0.33.0 -# google.golang.org/protobuf : BSD-3-Clause -Provides: bundled(golang(google.golang.org/protobuf)) = 1.36.6 -# gopkg.in/yaml.v3 : MIT AND Apache-2.0 -Provides: bundled(golang(gopkg.in/yaml.v3)) = 3.0.1 -# sigs.k8s.io/yaml : MIT AND BSD-3-Clause AND (MIT OR Apache-2.0) -Provides: bundled(golang(sigs.k8s.io/yaml)) = 1.4.0 +Provides: bundled(golang(github.com/yusufpapurcu/wmi)) = 1.2.2 +# golang.org/x/crypto : BSD +Provides: bundled(golang(golang.org/x/crypto)) = 089bfa5 +# golang.org/x/mod : BSD +Provides: bundled(golang(golang.org/x/mod)) = 0.5.1 +# golang.org/x/net : BSD +Provides: bundled(golang(golang.org/x/net)) = 3ad01bb +# golang.org/x/sys : BSD +Provides: bundled(golang(golang.org/x/sys)) = da31bd3 +# golang.org/x/text: BSD +Provides: bundled(golang(golang.org/x/text)) = 0.3.7 +# golang.org/x/time : BSD +Provides: bundled(golang(golang.org/x/time)) = 1f47c86 +# 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 +# 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 + %description Syncthing replaces other file synchronization services with something @@ -239,6 +217,23 @@ that control is returned to you. This package contains the syncthing client binary and systemd services. +%if %{with devel} +%package devel +Summary: Continuous File Synchronization (development files) +BuildArch: noarch + +%description devel +Syncthing replaces other file synchronization services with something +open, trustworthy and decentralized. Your data is your data alone and +you deserve to choose where it is stored, if it is shared with some +third party and how it's transmitted over the Internet. Using syncthing, +that control is returned to you. + +This package contains the syncthing sources, which are needed as +dependency for building packages using syncthing. +%endif + + %package tools Summary: Continuous File Synchronization (server tools) @@ -299,7 +294,7 @@ export LDFLAGS="-X %{goipath}/lib/build.Program=strelaysrv $COMMON_LDFLAGS" %gobuild -o _bin/strelaysrv %{goipath}/cmd/strelaysrv export LDFLAGS="-X %{goipath}/lib/build.Program=strelaypoolsrv $COMMON_LDFLAGS" -%gobuild -o _bin/strelaypoolsrv %{goipath}/cmd/infra/strelaypoolsrv +%gobuild -o _bin/strelaypoolsrv %{goipath}/cmd/strelaypoolsrv %install @@ -329,11 +324,10 @@ 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 - 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 + cp -pav assets/logo-$size.png %{buildroot}/%{_datadir}/icons/hicolor/$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 @@ -341,6 +335,7 @@ mkdir -p %{buildroot}/%{_unitdir} mkdir -p %{buildroot}/%{_userunitdir} cp -pav etc/linux-systemd/system/syncthing@.service %{buildroot}/%{_unitdir}/ +cp -pav etc/linux-systemd/system/syncthing-resume.service %{buildroot}/%{_unitdir}/ cp -pav etc/linux-systemd/user/syncthing.service %{buildroot}/%{_userunitdir}/ # unmark source files as executable @@ -348,6 +343,10 @@ for i in $(find -name "*.go" -type f -executable -print); do chmod a-x $i; done +%if %{with devel} +%goinstall +%endif + %check desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop @@ -357,24 +356,18 @@ export GOPATH=$(pwd)/_build:%{gopath} export GO111MODULE=off %gotest %{goipath}/cmd/stdiscosrv -%gotest %{goipath}/cmd/infra/strelaypoolsrv +%gotest %{goipath}/cmd/strelaypoolsrv %gotest %{goipath}/cmd/syncthing + %gotest %{goipath}/lib/api %gotest %{goipath}/lib/beacon %gotest %{goipath}/lib/config - -# This test times out on s390x -%gotest %{goipath}/lib/connections || : - +%gotest %{goipath}/lib/connections %gotest %{goipath}/lib/db %gotest %{goipath}/lib/dialer %gotest %{goipath}/lib/discover %gotest %{goipath}/lib/events - -# This test fails on SELinux-enabled systems: -# https://github.com/syncthing/syncthing/issues/8601 -%gotest %{goipath}/lib/fs || : - +%gotest %{goipath}/lib/fs %gotest %{goipath}/lib/ignore %gotest %{goipath}/lib/logger @@ -390,17 +383,14 @@ export GO111MODULE=off %gotest %{goipath}/lib/relay/client %gotest %{goipath}/lib/relay/protocol %gotest %{goipath}/lib/scanner -%gotest %{goipath}/lib/semaphore %gotest %{goipath}/lib/signature %gotest %{goipath}/lib/stats -%gotest %{goipath}/lib/stringutil -%gotest %{goipath}/lib/structutil -%gotest %{goipath}/lib/svcutil %gotest %{goipath}/lib/sync %gotest %{goipath}/lib/syncthing %gotest %{goipath}/lib/tlsutil %gotest %{goipath}/lib/upgrade %gotest %{goipath}/lib/upnp +%gotest %{goipath}/lib/util # This test sometimes fails dependent on load on some architectures: # https://github.com/syncthing/syncthing/issues/4351 @@ -435,6 +425,7 @@ export GO111MODULE=off %{_mandir}/*/syncthing* %{_unitdir}/syncthing@.service +%{_unitdir}/syncthing-resume.service %{_userunitdir}/syncthing.service @@ -450,5 +441,12 @@ export GO111MODULE=off %{_mandir}/man1/strelaysrv* +%if %{with devel} +%files devel -f devel.file-list +%license LICENSE +%doc README.md AUTHORS +%endif + + %changelog %autochangelog diff --git a/vendor2provides.py b/vendor2provides.py index ce1afb8..d4fc942 100755 --- a/vendor2provides.py +++ b/vendor2provides.py @@ -6,8 +6,7 @@ # Parse modules.txt files into rpm .spec file Provides for bundled dependencies. # Written by Fabio "decathorpe" Valentini for # the fedora syncthing package: https://src.fedoraproject.org/rpms/syncthing -# -# SPDX-License-Identifier: Unlicense +# SPDX-License-Identifier: CC0-1.0 OR Unlicense import os import sys