Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package go1.17 for openSUSE:Factory checked in at 2023-04-18 15:51:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go1.17 (Old) and /work/SRC/openSUSE:Factory/.go1.17.new.2023 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go1.17" Tue Apr 18 15:51:56 2023 rev:22 rq:1079833 version:1.17.13 Changes: -------- --- /work/SRC/openSUSE:Factory/go1.17/go1.17.changes 2023-04-15 22:32:54.053452695 +0200 +++ /work/SRC/openSUSE:Factory/.go1.17.new.2023/go1.17.changes 2023-04-18 15:51:57.633098000 +0200 @@ -1,0 +2,38 @@ +Fri Apr 14 23:41:22 UTC 2023 - Jeff Kowalczyk <jkowalc...@suse.com> + +- Build subpackage go1.x-libstd compiled shared object libstd.so + only on Tumbleweed at this time. + Refs jsc#PED-1962 + +------------------------------------------------------------------- +Fri Apr 14 23:20:06 UTC 2023 - Jeff Kowalczyk <jkowalc...@suse.com> + +- Add subpackage go1.x-libstd for compiled shared object libstd.so. + Refs jsc#PED-1962 + * Main go1.x package included libstd.so in previous versions + * Split libstd.so into subpackage that can be installed standalone + * Continues the slimming down of main go1.x package by 40 Mb + * Experimental and not recommended for general use, Go currently has no ABI + * Upstream Go has not committed to support buildmode=shared long-term + * Do not use in packaging, build static single binaries (the default) + * Upstream Go go1.x binary releases do not include libstd.so + * go1.x Suggests go1.x-libstd so not installed by default Recommends + * go1.x-libstd does not Require: go1.x so can install standalone + * Provides go-libstd unversioned package name + * Fix build step -buildmode=shared std to omit -linkshared +- Packaging improvements: + * go1.x Suggests go1.x-doc so not installed by default Recommends + * Use Group: Development/Languages/Go instead of Other + +------------------------------------------------------------------- +Fri Apr 14 23:06:51 UTC 2023 - Jeff Kowalczyk <jkowalc...@suse.com> + +- Improvements to go1.x packaging spec: + * On Tumbleweed bootstrap with current default gcc13 and gccgo118 + * On SLE-12 aarch64 ppc64le ppc64 remove overrides to bootstrap + using go1.x package (%bcond_without gccgo). This is no longer + needed on current SLE-12:Update and removing will consolidate + the build configurations used. + * Change source URLs to go.dev as per Go upstream + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go1.17.spec ++++++ --- /var/tmp/diff_new_pack.Bdps8J/_old 2023-04-18 15:51:58.893105256 +0200 +++ /var/tmp/diff_new_pack.Bdps8J/_new 2023-04-18 15:51:58.897105279 +0200 @@ -24,29 +24,25 @@ %undefine _build_create_debug %define __arch_install_post export NO_BRP_STRIP_DEBUG=true NO_BRP_AR=true -# Used to bootstrap go toolchain with specific existing package -%define go_bootstrap_version go1.16 - -# Used to bootstrap go toolchain using specific version of gcc-go +# Specify Go toolchain version used to bootstrap this package's Go toolchain +# go_bootstrap_version bootstrap go toolchain with specific existing go1.x package +# gcc_go_version bootstrap go toolchain with specific version of gcc-go %if 0%{?suse_version} > 1500 # openSUSE Tumbleweed +# Usually ahead of bootstrap version specified by upstream Go +# Use Tumbleweed default gccgo and N-1 go1.x for testing %define gcc_go_version 13 +%define go_bootstrap_version go1.16 %else +# Use gccgo and go1.x specified by upstream Go %define gcc_go_version 11 +%define go_bootstrap_version go1.16 %endif # Bootstrap go toolchain using existing go package go_bootstrap_version # To bootstrap using gccgo use '--with gccgo' %bcond_with gccgo -# Boostrapping using existing go package can fail on certain SLE-12 architectures -# Override here as needed -%if 0%{?suse_version} == 1315 -%ifarch aarch64 ppc64le ppc64 s390x -%bcond_without gccgo -%endif -%endif - # gccgo on ppc64le with default PIE enabled fails with: # error while loading shared libraries: # R_PPC64_ADDR16_HA re10143fb0c for symbol `' out of range @@ -58,9 +54,7 @@ #!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 %else @@ -138,13 +132,15 @@ Release: 0 Summary: A compiled, garbage-collected, concurrent programming language License: BSD-3-Clause -Group: Development/Languages/Other -URL: http://golang.org -Source: http://golang.org/dl/go%{version}.src.tar.gz +Group: Development/Languages/Go +URL: https://go.dev/ +Source: https://go.dev/dl/go%{version}.src.tar.gz Source1: go-rpmlintrc Source4: README.SUSE Source6: go.gdbinit # We have to compile TSAN ourselves. boo#1052528 +# Preferred form when all arches share llvm race version +# Source100: llvm-%{tsan_commit}.tar.xz Source100: llvm-%{tsan_commit}.tar.xz # PATCH-FIX-OPENSUSE: https://go-review.googlesource.com/c/go/+/391115 Patch7: dont-force-gold-on-arm64.patch @@ -159,7 +155,11 @@ BuildRequires: %{go_bootstrap_version} %endif BuildRequires: fdupes -Recommends: %{name}-doc = %{version} +Suggests: %{name}-doc = %{version} +%if 0%{?suse_version} > 1500 +# openSUSE Tumbleweed +Suggests: %{name}-libstd = %{version} +%endif %ifarch %{tsan_arch} # Needed to compile compiler-rt/TSAN. BuildRequires: gcc-c++ @@ -189,7 +189,6 @@ %package doc Summary: Go documentation Group: Documentation/Other -Requires: %{name} = %{version} Provides: go-doc = %{version} %description doc @@ -199,7 +198,7 @@ # boo#1052528 %package race Summary: Go runtime race detector -Group: Development/Languages/Other +Group: Development/Languages/Go URL: https://compiler-rt.llvm.org/ Requires: %{name} = %{version} Supplements: %{name} = %{version} @@ -210,11 +209,25 @@ -race option, in order to detect race conditions present in your Go programs. %endif +%if %{with_shared} +%if 0%{?suse_version} > 1500 +# openSUSE Tumbleweed +%package libstd +Summary: Go compiled shared library libstd.so +Group: Development/Languages/Go +Provides: go-libstd = %{version} + +%description libstd +Go standard library compiled to a dynamically loadable shared object libstd.so +%endif +%endif + %prep %ifarch %{tsan_arch} # compiler-rt (from LLVM) %setup -q -T -b 100 -n llvm-%{tsan_commit} %endif + # go %setup -q -n go %patch7 -p1 @@ -273,7 +286,25 @@ %endif %if %{with_shared} -bin/go install -buildmode=shared -linkshared std +%if 0%{?suse_version} > 1500 +# openSUSE Tumbleweed +# Compile Go standard library as a dynamically loaded shared object libstd.so +# for inclusion in a subpackage which can be installed standalone. +# Upstream Go binary releases do not ship a compiled libstd.so. +# Standard practice is to build Go binaries as a single executable. +# Upstream Go discussed removing this feature, opted to fix current support: +# Relevant upstream comments on: https://github.com/golang/go/issues/47788 +# +# -buildmode=shared +# Combine all the listed non-main packages into a single shared +# library that will be used when building with the -linkshared +# option. Packages named main are ignored. +# +# -linkshared +# build code that will be linked against shared libraries previously +# created with -buildmode=shared. +bin/go install -buildmode=shared std +%endif %endif %check @@ -396,8 +427,16 @@ %exclude %{_datadir}/go/%{go_label}/src/runtime/race/race_linux_%{go_arch}.syso %endif +# We don't include libstd.so in the main Go package. +%if %{with_shared} +%if 0%{?suse_version} > 1500 +# openSUSE Tumbleweed +# ./go/1.20/pkg/linux_amd64_dynlink/libstd.so +%exclude %{_libdir}/go/%{go_label}/pkg/linux_%{go_arch}_dynlink/libstd.so +%endif +%endif + %files doc -%defattr(-,root,root,-) %doc %{_docdir}/go/%{go_label}/*.html %ifarch %{tsan_arch} @@ -405,4 +444,12 @@ %{_datadir}/go/%{go_label}/src/runtime/race/race_linux_%{go_arch}.syso %endif +%if %{with_shared} +%if 0%{?suse_version} > 1500 +# openSUSE Tumbleweed +%files libstd +%{_libdir}/go/%{go_label}/pkg/linux_%{go_arch}_dynlink/libstd.so +%endif +%endif + %changelog