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 2023-04-18 15:52:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go1.19 (Old) and /work/SRC/openSUSE:Factory/.go1.19.new.2023 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go1.19" Tue Apr 18 15:52:01 2023 rev:14 rq:1079837 version:1.19.8 Changes: -------- --- /work/SRC/openSUSE:Factory/go1.19/go1.19.changes 2023-04-15 23:08:35.373825621 +0200 +++ /work/SRC/openSUSE:Factory/.go1.19.new.2023/go1.19.changes 2023-04-18 15:52:02.589126542 +0200 @@ -1,0 +2,41 @@ +Fri Apr 14 23:41:22 UTC 2023 - Jeff Kowalczyk <jkowalc...@suse.com> + +- Build subpackage go1.1x-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 + * On x86_64 export GOAMD64=v1 as per the current baseline. + At this time forgo GOAMD64=v3 option for x86_64_v3 support. + * On x86_64 %define go_amd64=v1 as current instruction baseline + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go1.19.spec ++++++ --- /var/tmp/diff_new_pack.tJ8Wbw/_old 2023-04-18 15:52:03.321130757 +0200 +++ /var/tmp/diff_new_pack.tJ8Wbw/_new 2023-04-18 15:52:03.325130781 +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.18 %else +# Use gccgo and go1.x specified by upstream Go %define gcc_go_version 11 +%define go_bootstrap_version go1.17 %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 -%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 @@ -74,7 +70,7 @@ # # In order to update the TSAN version, modify _service. See boo#1052528 for # more details. -%ifarch x86_64 +%ifarch x86_64 %{?x86_64} %define tsan_commit 127e59048cd3d8dbb80c14b3036918c114089529 %else %define tsan_commit 41cb504b7c4b18ac15830107431a0c1eec73a6b2 @@ -115,6 +111,8 @@ %endif %ifarch x86_64 %define go_arch amd64 +# set GOAMD64 consistently +%define go_amd64 v1 %endif %ifarch aarch64 %define go_arch arm64 @@ -140,9 +138,9 @@ 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 @@ -164,7 +162,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++ @@ -194,7 +196,6 @@ %package doc Summary: Go documentation Group: Documentation/Other -Requires: %{name} = %{version} Provides: go-doc = %{version} %description doc @@ -204,7 +205,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} @@ -215,6 +216,19 @@ -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) @@ -269,6 +283,10 @@ export GOARCH=arm export GOARM=7 %endif +%ifarch x86_64 %{?x86_64} +# use the baseline defined above. Other option is GOAMD64=v3 for x86_64_v3 support +export GOAMD64=%go_amd64 +%endif export GOROOT="`pwd`" export GOROOT_FINAL=%{_libdir}/go/%{go_label} export GOBIN="$GOROOT/bin" @@ -283,7 +301,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 @@ -410,6 +446,15 @@ %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 %doc %{_docdir}/go/%{go_label}/*.html @@ -418,4 +463,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