Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package go1.19 for openSUSE:Factory checked in at 2022-08-09 15:27:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go1.19 (Old) and /work/SRC/openSUSE:Factory/.go1.19.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go1.19" Tue Aug 9 15:27:48 2022 rev:2 rq:993860 version:1.19 Changes: -------- --- /work/SRC/openSUSE:Factory/go1.19/go1.19.changes 2022-06-12 17:43:08.858485431 +0200 +++ /work/SRC/openSUSE:Factory/.go1.19.new.1521/go1.19.changes 2022-08-09 15:28:21.609626520 +0200 @@ -1,0 +2,277 @@ +Tue Aug 2 17:19:11 UTC 2022 - Jeff Kowalczyk <[email protected]> + +- go1.19 (released 2022-08-02) is a major release of Go. + go1.19.x minor releases will be provided through August 2023. + https://github.com/golang/go/wiki/Go-Release-Cycle + go1.19 arrives five months after go1.18. Most of its changes are + in the implementation of the toolchain, runtime, and libraries. + As always, the release maintains the Go 1 promise of + compatibility. We expect almost all Go programs to continue to + compile and run as before. + Refs boo#1200441 go1.19 release tracking + * See release notes https://golang.org/doc/go1.19. Excerpts + relevant to OBS environment and for SUSE/openSUSE follow: + * There is only one small change to the language, a very small + correction to the scope of type parameters in method + declarations. Existing programs are unaffected. + * The Go memory model has been revised to align Go with the + memory model used by C, C++, Java, JavaScript, Rust, and + Swift. Go only provides sequentially consistent atomics, not + any of the more relaxed forms found in other languages. Along + with the memory model update, Go 1.19 introduces new types in + the sync/atomic package that make it easier to use atomic + values, such as atomic.Int64 and atomic.Pointer[T]. + * go1.19 adds support for the Loongson 64-bit architecture + LoongArch on Linux (GOOS=linux, GOARCH=loong64). The ABI + implemented is LP64D. Minimum kernel version supported is 5.19. + * The riscv64 port now supports passing function arguments and + result using registers. Benchmarking shows typical performance + improvements of 10% or more on riscv64. + * Go 1.19 adds support for links, lists, and clearer headings in + doc comments. As part of this change, gofmt now reformats doc + comments to make their rendered meaning clearer. See "Go Doc + Comments" for syntax details and descriptions of common + mistakes now highlighted by gofmt. As another part of this + change, the new package go/doc/comment provides parsing and + reformatting of doc comments as well as support for rendering + them to HTML, Markdown, and text. + * The new build constraint "unix" is now recognized in //go:build + lines. The constraint is satisfied if the target operating + system, also known as GOOS, is a Unix or Unix-like system. For + the 1.19 release it is satisfied if GOOS is one of aix, + android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, + netbsd, openbsd, or solaris. In future releases the unix + constraint may match additional newly supported operating + systems. + * The -trimpath flag, if set, is now included in the build + settings stamped into Go binaries by go build, and can be + examined using go version -m or debug.ReadBuildInfo. + * go generate now sets the GOROOT environment variable explicitly + in the generator's environment, so that generators can locate + the correct GOROOT even if built with -trimpath. + * go test and go generate now place GOROOT/bin at the beginning + of the PATH used for the subprocess, so tests and generators + that execute the go command will resolve it to same GOROOT. + * go env now quotes entries that contain spaces in the + CGO_CFLAGS, CGO_CPPFLAGS, CGO_CXXFLAGS, CGO_FFLAGS, + CGO_LDFLAGS, and GOGCCFLAGS variables it reports. + * go list -json now accepts a comma-separated list of JSON fields + to populate. If a list is specified, the JSON output will + include only those fields, and go list may avoid work to + compute fields that are not included. In some cases, this may + suppress errors that would otherwise be reported. + * The go command now caches information necessary to load some + modules, which should result in a speed-up of some go list + invocations. + * The vet checker "errorsas" now reports when errors.As is called + with a second argument of type *error, a common mistake. + * The runtime now includes support for a soft memory limit. This + memory limit includes the Go heap and all other memory managed + by the runtime, and excludes external memory sources such as + mappings of the binary itself, memory managed in other + languages, and memory held by the operating system on behalf of + the Go program. This limit may be managed via + runtime/debug.SetMemoryLimit or the equivalent GOMEMLIMIT + environment variable. The limit works in conjunction with + runtime/debug.SetGCPercent / GOGC, and will be respected even + if GOGC=off, allowing Go programs to always make maximal use of + their memory limit, improving resource efficiency in some + cases. + * In order to limit the effects of GC thrashing when the + program's live heap size approaches the soft memory limit, the + Go runtime also attempts to limit total GC CPU utilization to + 50%, excluding idle time, choosing to use more memory over + preventing application progress. In practice, we expect this + limit to only play a role in exceptional cases, and the new + runtime metric /gc/limiter/last-enabled:gc-cycle reports when + this last occurred. + * The runtime now schedules many fewer GC worker goroutines on + idle operating system threads when the application is idle + enough to force a periodic GC cycle. + * The runtime will now allocate initial goroutine stacks based on + the historic average stack usage of goroutines. This avoids + some of the early stack growth and copying needed in the + average case in exchange for at most 2x wasted space on + below-average goroutines. + * On Unix operating systems, Go programs that import package os + now automatically increase the open file limit (RLIMIT_NOFILE) + to the maximum allowed value; that is, they change the soft + limit to match the hard limit. This corrects artificially low + limits set on some systems for compatibility with very old C + programs using the select system call. Go programs are not + helped by that limit, and instead even simple programs like + gofmt often ran out of file descriptors on such systems when + processing many files in parallel. One impact of this change is + that Go programs that in turn execute very old C programs in + child processes may run those programs with too high a + limit. This can be corrected by setting the hard limit before + invoking the Go program. + * Unrecoverable fatal errors (such as concurrent map writes, or + unlock of unlocked mutexes) now print a simpler traceback + excluding runtime metadata (equivalent to a fatal panic) unless + GOTRACEBACK=system or crash. Runtime-internal fatal error + tracebacks always include full metadata regardless of the value + of GOTRACEBACK + * Support for debugger-injected function calls has been added on + ARM64, enabling users to call functions from their binary in an + interactive debugging session when using a debugger that is + updated to make use of this functionality. + * The address sanitizer support added in Go 1.18 now handles + function arguments and global variables more precisely. + * The compiler now uses a jump table to implement large integer + and string switch statements. Performance improvements for the + switch statement vary but can be on the order of 20% + faster. (GOARCH=amd64 and GOARCH=arm64 only) + * The Go compiler now requires the -p=importpath flag to build a + linkable object file. This is already supplied by the go + command and by Bazel. Any other build systems that invoke the + Go compiler directly will need to make sure they pass this flag + as well. + * The Go compiler no longer accepts the -importmap flag. Build + systems that invoke the Go compiler directly must use the + -importcfg flag instead. + * Like the compiler, the assembler now requires the -p=importpath + flag to build a linkable object file. This is already supplied + by the go command. Any other build systems that invoke the Go + assembler directly will need to make sure they pass this flag + as well. + * Command and LookPath no longer allow results from a PATH search + to be found relative to the current directory. This removes a + common source of security problems but may also break existing + programs that depend on using, say, exec.Command("prog") to run + a binary named prog (or, on Windows, prog.exe) in the current + directory. See the os/exec package documentation for + information about how best to update such programs. + * On Windows, Command and LookPath now respect the + NoDefaultCurrentDirectoryInExePath environment variable, making + it possible to disable the default implicit search of ???.??? in + PATH lookups on Windows systems. + * crypto/elliptic: Operating on invalid curve points (those for + which the IsOnCurve method returns false, and which are never + returned by Unmarshal or by a Curve method operating on a valid + point) has always been undefined behavior and can lead to key + recovery attacks. If an invalid point is supplied to Marshal, + MarshalCompressed, Add, Double, or ScalarMult, they will now + panic. ScalarBaseMult operations on the P224, P384, and P521 + curves are now up to three times faster, leading to similar + speedups in some ECDSA operations. The generic (not platform + optimized) P256 implementation was replaced with one derived + from a formally verified model; this might lead to significant + slowdowns on 32-bit platforms. + * crypto/rand: Read no longer buffers random data obtained from + the operating system between calls. Applications that perform + many small reads at high frequency might choose to wrap Reader + in a bufio.Reader for performance reasons, taking care to use + io.ReadFull to ensure no partial reads occur. The Prime + implementation was changed to use only rejection sampling, + which removes a bias when generating small primes in + non-cryptographic contexts, removes one possible minor timing + leak, and better aligns the behavior with BoringSSL, all while + simplifying the implementation. The change does produce + different outputs for a given random source stream compared to + the previous implementation, which can break tests written + expecting specific results from specific deterministic random + sources. To help prevent such problems in the future, the + implementation is now intentionally non-deterministic with + respect to the input stream. + * crypto/tls: The GODEBUG option tls10default=1 has been + removed. It is still possible to enable TLS 1.0 client-side by + setting Config.MinVersion. The TLS server and client now reject + duplicate extensions in TLS handshakes, as required by RFC + 5246, Section 7.4.1.4 and RFC 8446, Section 4.2. + * crypto/x509: CreateCertificate no longer supports creating + certificates with SignatureAlgorithm set to + MD5WithRSA. CreateCertificate no longer accepts negative serial + numbers. CreateCertificate will not emit an empty SEQUENCE + anymore when the produced certificate has no + extensions. ParseCertificate and ParseCertificateRequest now + reject certificates and CSRs which contain duplicate + extensions. The new CertPool.Clone and CertPool.Equal methods + allow cloning a CertPool and checking the equivalence of two + CertPools respectively. The new function ParseRevocationList + provides a faster, safer to use CRL parser which returns a + RevocationList. Parsing a CRL also populates the new + RevocationList fields RawIssuer, Signature, AuthorityKeyId, and + Extensions, which are ignored by CreateRevocationList. The new + method RevocationList.CheckSignatureFrom checks that the + signature on a CRL is a valid signature from a Certificate. The ++++ 80 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/go1.19/go1.19.changes ++++ and /work/SRC/openSUSE:Factory/.go1.19.new.1521/go1.19.changes Old: ---- go1.19beta1.src.tar.gz New: ---- go1.19.src.tar.gz llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go1.19.spec ++++++ --- /var/tmp/diff_new_pack.HggH61/_old 2022-08-09 15:28:22.509629092 +0200 +++ /var/tmp/diff_new_pack.HggH61/_new 2022-08-09 15:28:22.513629103 +0200 @@ -69,11 +69,9 @@ #!BuildIgnore: gcc-PIE %endif -# Build go-race only on platforms where it's supported (both amd64 and aarch64 -# requires SLE15-or-later because of C++14, and ppc64le doesn't build at all -# on openSUSE yet). +# Build go-race only on platforms where C++14 is supported (SLE-15) %if 0%{?suse_version} >= 1500 || 0%{?sle_version} >= 150000 -%define tsan_arch x86_64 aarch64 +%define tsan_arch x86_64 aarch64 s390x ppc64le %else # Cannot use {nil} here (ifarch doesn't like it) so just make up a fake # architecture that no build will ever match. @@ -87,7 +85,11 @@ # # In order to update the TSAN version, modify _service. See boo#1052528 for # more details. +%ifarch x86_64 +%define tsan_commit 127e59048cd3d8dbb80c14b3036918c114089529 +%else %define tsan_commit 41cb504b7c4b18ac15830107431a0c1eec73a6b2 +%endif # go_api is the major version of Go. # Used by go1.x packages and go metapackage for: @@ -145,7 +147,7 @@ %endif Name: go1.19 -Version: 1.19beta1 +Version: 1.19 Release: 0 Summary: A compiled, garbage-collected, concurrent programming language License: BSD-3-Clause @@ -156,7 +158,10 @@ Source4: README.SUSE Source6: go.gdbinit # We have to compile TSAN ourselves. boo#1052528 -Source100: llvm-%{tsan_commit}.tar.xz +# Preferred form when all arches share llvm race version +# Source100: llvm-%{tsan_commit}.tar.xz +Source100: llvm-127e59048cd3d8dbb80c14b3036918c114089529.tar.xz +Source101: llvm-41cb504b7c4b18ac15830107431a0c1eec73a6b2.tar.xz # PATCH-FIX-OPENSUSE: https://go-review.googlesource.com/c/go/+/391115 Patch7: dont-force-gold-on-arm64.patch # PATCH-FIX-UPSTREAM [email protected] - find /usr/bin/go-8 when bootstrapping with gcc8-go @@ -224,7 +229,12 @@ %prep %ifarch %{tsan_arch} # compiler-rt (from LLVM) +%ifarch x86_64 %setup -q -T -b 100 -n llvm-%{tsan_commit} +%else +%setup -q -T -b 101 -n llvm-%{tsan_commit} +%endif + %endif # go %setup -q -n go @@ -313,6 +323,14 @@ done # executable bash scripts called by go tool, etc find src -name "*.bash" -exec install -Dm655 \{\} %{buildroot}%{_datadir}/go/%{go_label}/\{\} \; +# # Trace viewer html and javascript files moved from misc/trace in +# # previous versions to src/cmd/trace/static in go1.19. +# # static contains pprof trace viewer html javascript and markdown +# echo "PWD:" `pwd` +# echo "GOROOT:" $GOROOT +# mkdir -v -p $GOROOT/src/cmd/trace/static +install -d %{buildroot}%{_datadir}/go/%{go_label}/src/cmd/trace/static +install -Dm644 src/cmd/trace/static/* %{buildroot}%{_datadir}/go/%{go_label}/src/cmd/trace/static mkdir -p $GOROOT/src for i in $(ls %{buildroot}/usr/share/go/%{go_label}/src);do @@ -341,14 +359,14 @@ %endif # update-alternatives - mkdir -p %{buildroot}%{_sysconfdir}/alternatives - mkdir -p %{buildroot}%{_bindir} - mkdir -p %{buildroot}%{_sysconfdir}/profile.d - mkdir -p %{buildroot}%{_sysconfdir}/gdbinit.d - touch %{buildroot}%{_sysconfdir}/alternatives/{go,gofmt,go.gdb} - ln -sf %{_sysconfdir}/alternatives/go %{buildroot}%{_bindir}/go - ln -sf %{_sysconfdir}/alternatives/gofmt %{buildroot}%{_bindir}/gofmt - ln -sf %{_sysconfdir}/alternatives/go.gdb %{buildroot}%{_sysconfdir}/gdbinit.d/go.gdb +mkdir -p %{buildroot}%{_sysconfdir}/alternatives +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_sysconfdir}/profile.d +mkdir -p %{buildroot}%{_sysconfdir}/gdbinit.d +touch %{buildroot}%{_sysconfdir}/alternatives/{go,gofmt,go.gdb} +ln -sf %{_sysconfdir}/alternatives/go %{buildroot}%{_bindir}/go +ln -sf %{_sysconfdir}/alternatives/gofmt %{buildroot}%{_bindir}/gofmt +ln -sf %{_sysconfdir}/alternatives/go.gdb %{buildroot}%{_sysconfdir}/gdbinit.d/go.gdb # documentation and examples # fix documetation permissions (rpmlint warning) @@ -357,7 +375,7 @@ rm -rf misc/cgo/test/{_*,*.o,*.out,*.6,*.8} # prepare go-doc mkdir -p %{buildroot}%{_docdir}/go/%{go_label} -cp -r AUTHORS CONTRIBUTORS CONTRIBUTING.md LICENSE PATENTS README.md README.SUSE %{buildroot}%{_docdir}/go/%{go_label} +cp -r CONTRIBUTING.md LICENSE PATENTS README.md README.SUSE %{buildroot}%{_docdir}/go/%{go_label} cp -r doc/* %{buildroot}%{_docdir}/go/%{go_label} %fdupes -s %{buildroot}%{_prefix} @@ -388,8 +406,6 @@ %ghost %{_sysconfdir}/alternatives/go.gdb %dir %{_docdir}/go %dir %{_docdir}/go/%{go_label} -%doc %{_docdir}/go/%{go_label}/AUTHORS -%doc %{_docdir}/go/%{go_label}/CONTRIBUTORS %doc %{_docdir}/go/%{go_label}/CONTRIBUTING.md %doc %{_docdir}/go/%{go_label}/PATENTS %doc %{_docdir}/go/%{go_label}/README.md ++++++ _service ++++++ --- /var/tmp/diff_new_pack.HggH61/_old 2022-08-09 15:28:22.557629229 +0200 +++ /var/tmp/diff_new_pack.HggH61/_new 2022-08-09 15:28:22.557629229 +0200 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="include">compiler-rt</param> <!-- [boo#1052528] Always make sure this is kept up to date with src/runtime/race/README. --> - <param name="revision">41cb504b7c4b18ac15830107431a0c1eec73a6b2</param> + <param name="revision">127e59048cd3d8dbb80c14b3036918c114089529</param> <param name="versionformat">%H</param> <param name="filename">llvm</param> </service> ++++++ go1.19beta1.src.tar.gz -> go1.19.src.tar.gz ++++++ /work/SRC/openSUSE:Factory/go1.19/go1.19beta1.src.tar.gz /work/SRC/openSUSE:Factory/.go1.19.new.1521/go1.19.src.tar.gz differ: char 13, line 1
