diff --git a/.gitignore b/.gitignore index 4541b61..2408508 100644 --- a/.gitignore +++ b/.gitignore @@ -124,54 +124,14 @@ /go1.19.2.src.tar.gz /go1.19.3.src.tar.gz /go1.19.4.src.tar.gz -/go1.20rc1.src.tar.gz -/go1.20rc2.src.tar.gz -/go1.20rc3.src.tar.gz -/go1.20.src.tar.gz -/go1.20.1.src.tar.gz -/go1.20.2.src.tar.gz -/go1.20.3.src.tar.gz -/go1.20.4.src.tar.gz -/go1.20.5.src.tar.gz -/go1.20.6.src.tar.gz -/go1.21rc1.src.tar.gz -/go1.21rc2.src.tar.gz -/go1.21rc3.src.tar.gz -/go1.21.0.src.tar.gz -/go1.21.1.src.tar.gz -/go1.21.3.src.tar.gz -/go1.21.4.src.tar.gz -/go1.21.5.src.tar.gz -/go1.21.6.src.tar.gz -/go1.22rc1.src.tar.gz -/go1.22rc2.src.tar.gz -/go1.22.0.src.tar.gz -/go1.22.1.src.tar.gz -/go1.22.2.src.tar.gz -/go1.22.3.src.tar.gz -/go1.22.4.src.tar.gz -/go1.23rc1.src.tar.gz -/go1.23rc2.src.tar.gz -/go1.23.0.src.tar.gz -/go1.23.1.src.tar.gz -/go1.23.2.src.tar.gz -/go1.23.3.src.tar.gz -/go1.23.4.src.tar.gz -/go1.24rc1.src.tar.gz -/go1.24rc2.src.tar.gz -/go1.24rc3.src.tar.gz -/go1.24.0.src.tar.gz -/go1.24.1.src.tar.gz -/go1.24.2.src.tar.gz -/go1.24.3.src.tar.gz -/go1.24.4.src.tar.gz -/go1.24.5.src.tar.gz -/go1.25rc1.src.tar.gz -/go1.25rc2.src.tar.gz -/go1.25.0.src.tar.gz -/go1.25.1.src.tar.gz -/go1.25.2.src.tar.gz -/go1.25.3.src.tar.gz -/go1.25.4.src.tar.gz -/go1.25.5.src.tar.gz -/go1.26rc1.src.tar.gz +/go1.19.5.src.tar.gz +/go1.19.6.src.tar.gz +/go1.19.7.src.tar.gz +/go1.19.8.src.tar.gz +/go1.19.9.src.tar.gz +/go1.19.10.src.tar.gz +/go1.19.11.src.tar.gz +/go1.19.12.src.tar.gz +/go1.19.13.src.tar.gz +/go1.20.10.src.tar.gz +/go1.20.11.src.tar.gz diff --git a/.packit.yaml b/.packit.yaml deleted file mode 100644 index ab570c5..0000000 --- a/.packit.yaml +++ /dev/null @@ -1,41 +0,0 @@ -specfile_path: golang.spec -files_to_sync: - - golang.spec - - .packit.yaml -upstream_package_name: go -upstream_project_url: https://github.com/golang/go -downstream_package_name: golang -upstream_tag_template: go{version} - -actions: - changelog-entry: - - bash -c "echo - New release ${PACKIT_PROJECT_VERSION}" - -jobs: - # Fedora 42 follows Go 1.24 - - job: pull_from_upstream - trigger: release - dist_git_branches: fedora-42 - upstream_tag_include: "^go1.24.+" - - # Fedora 43 follows Go 1.25 - - job: pull_from_upstream - trigger: release - dist_git_branches: fedora-43 - upstream_tag_include: "^go1.25.+" - - # Fedora Rawhide follows the latest version - - job: pull_from_upstream - trigger: release - dist_git_branches: fedora-rawhide - upstream_tag_include: "^go1.26.+" - - # Run Koji builds when Packit pull requests are merged - - job: koji_build - trigger: commit - dist_git_branches: fedora-all - - # Create Bodhi updates in all Fedora stable versions - - job: bodhi_update - trigger: commit - dist_git_branches: fedora-all diff --git a/0001-Modify-go.env.patch b/0001-Modify-go.env.patch deleted file mode 100644 index 6a458b2..0000000 --- a/0001-Modify-go.env.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 39432f71436c41201450a523dc41035c92d27569 Mon Sep 17 00:00:00 2001 -From: Maxwell G -Date: Thu, 24 Jul 2025 12:23:59 -0500 -Subject: [PATCH] Modify go.env - ---- - go.env | 17 ++++++++++++++++- - 1 file changed, 16 insertions(+), 1 deletion(-) - -diff --git a/go.env b/go.env -index 6ff2b92..5508440 100644 ---- a/go.env -+++ b/go.env -@@ -4,9 +4,24 @@ - - # Use the Go module mirror and checksum database by default. - # See https://proxy.golang.org for details. -+# -+# NOTE(downstream): We used to disable the Google Go proxy with GOPROXY=direct and -+# disable the GOSUMDB for historical and priavcy reasons, but it caused severe -+# performance degradations, so we reverted to the default upstream configuration. -+# as of https://fedoraproject.org/wiki/Changes/golang1.25. -+# To preserve the previous behavior, set "GOPROXY=direct" and "GOSUMDB=off". - GOPROXY=https://proxy.golang.org,direct - GOSUMDB=sum.golang.org - - # Automatically download newer toolchains as directed by go.mod files. - # See https://go.dev/doc/toolchain for details. --GOTOOLCHAIN=auto -+# -+# NOTE(downstream): We change this default from auto to local so that the -+# distribution-packaged Go toolchain is always used and go doesn't -+# automatically download pre-compiled alternative versions. -+GOTOOLCHAIN=local -+ -+# NOTE(downstream): https://sourceware.org/bugzilla/show_bug.cgi?id=33204 -+# The dwarf5 data emitted by default in Go 1.25+ is incompatible with debugedit -+# and breaks debugdata collection. -+GOEXPERIMENT=nodwarf5 --- -2.50.1 - diff --git a/0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch b/0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch new file mode 100644 index 0000000..5d0970c --- /dev/null +++ b/0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch @@ -0,0 +1,41 @@ +From 67a4711d09c6595c17f32470c15bf471c287777d Mon Sep 17 00:00:00 2001 +From: Michael Munday +Date: Tue, 17 Jan 2017 11:33:38 -0500 +Subject: [PATCH 2/3] syscall: expose IfInfomsg.X__ifi_pad on s390x + +Exposing this field on s390x improves compatibility with the other +linux architectures, all of which already expose it. + +Fixes #18628 and updates #18632. + +Change-Id: I08e8e1eb705f898cd8822f8bee0d61ce11d514b5 +--- + src/syscall/ztypes_linux_s390x.go | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/syscall/ztypes_linux_s390x.go b/src/syscall/ztypes_linux_s390x.go +index 91f5ceff20..59a8b1fccd 100644 +--- a/src/syscall/ztypes_linux_s390x.go ++++ b/src/syscall/ztypes_linux_s390x.go +@@ -449,12 +449,12 @@ type RtAttr struct { + } + + type IfInfomsg struct { +- Family uint8 +- _ uint8 +- Type uint16 +- Index int32 +- Flags uint32 +- Change uint32 ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 + } + + type IfAddrmsg struct { +-- +2.26.2 + diff --git a/0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch b/0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch new file mode 100644 index 0000000..fba9713 --- /dev/null +++ b/0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch @@ -0,0 +1,48 @@ +From fa250374b727439159bc9f203b854bb5df00186f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jakub=20=C4=8Cajka?= +Date: Mon, 27 May 2019 15:12:53 +0200 +Subject: [PATCH 3/3] cmd/go: disable Google's proxy and sumdb + +--- + src/cmd/go/internal/cfg/cfg.go | 4 ++-- + src/cmd/go/testdata/script/mod_sumdb_golang.txt | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go +index 57a3c1ff6f..e56c60e591 100644 +--- a/src/cmd/go/internal/cfg/cfg.go ++++ b/src/cmd/go/internal/cfg/cfg.go +@@ -266,8 +266,8 @@ var ( + GOPPC64 = envOr("GOPPC64", fmt.Sprintf("%s%d", "power", buildcfg.GOPPC64)) + GOWASM = envOr("GOWASM", fmt.Sprint(buildcfg.GOWASM)) + +- GOPROXY = envOr("GOPROXY", "https://proxy.golang.org,direct") +- GOSUMDB = envOr("GOSUMDB", "sum.golang.org") ++ GOPROXY = envOr("GOPROXY", "direct") ++ GOSUMDB = envOr("GOSUMDB", "off") + GOPRIVATE = Getenv("GOPRIVATE") + GONOPROXY = envOr("GONOPROXY", GOPRIVATE) + GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE) +diff --git a/src/cmd/go/testdata/script/mod_sumdb_golang.txt b/src/cmd/go/testdata/script/mod_sumdb_golang.txt +index becd88b52e..b2a1250372 100644 +--- a/src/cmd/go/testdata/script/mod_sumdb_golang.txt ++++ b/src/cmd/go/testdata/script/mod_sumdb_golang.txt +@@ -2,12 +2,12 @@ + env GOPROXY= + env GOSUMDB= + go env GOPROXY +-stdout '^https://proxy.golang.org,direct$' ++stdout '^direct$' + go env GOSUMDB +-stdout '^sum.golang.org$' ++stdout '^off$' + env GOPROXY=https://proxy.golang.org + go env GOSUMDB +-stdout '^sum.golang.org$' ++stdout '^off$' + + # Download direct from github. + +-- +2.31.1 + diff --git a/0004-cmd-link-use-gold-on-ARM-ARM64-only-if-gold-is-avail.patch b/0004-cmd-link-use-gold-on-ARM-ARM64-only-if-gold-is-avail.patch new file mode 100644 index 0000000..d0a7149 --- /dev/null +++ b/0004-cmd-link-use-gold-on-ARM-ARM64-only-if-gold-is-avail.patch @@ -0,0 +1,53 @@ +From 5ccf9f47bf4f5ba53e0ab7338a7fd4626714cfb2 Mon Sep 17 00:00:00 2001 +From: Jeffery To +Date: Tue, 23 Nov 2021 15:05:37 +0800 +Subject: [PATCH] cmd/link: use gold on ARM/ARM64 only if gold is available + +COPY relocation handling on ARM/ARM64 has been fixed in recent versions +of the GNU linker. This switches to gold only if gold is available. + +Fixes #22040. +--- + src/cmd/link/internal/ld/lib.go | 19 +++++++------------ + 1 file changed, 7 insertions(+), 12 deletions(-) + +diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go +index 9e13db7b71..2b379259a2 100644 +--- a/src/cmd/link/internal/ld/lib.go ++++ b/src/cmd/link/internal/ld/lib.go +@@ -1390,25 +1390,20 @@ func (ctxt *Link) hostlink() { + } + + if ctxt.Arch.InFamily(sys.ARM, sys.ARM64) && buildcfg.GOOS == "linux" { +- // On ARM, the GNU linker will generate COPY relocations +- // even with -znocopyreloc set. ++ // On ARM, older versions of the GNU linker will generate ++ // COPY relocations even with -znocopyreloc set. + // https://sourceware.org/bugzilla/show_bug.cgi?id=19962 + // +- // On ARM64, the GNU linker will fail instead of +- // generating COPY relocations. ++ // On ARM64, older versions of the GNU linker will fail ++ // instead of generating COPY relocations. + // +- // In both cases, switch to gold. +- altLinker = "gold" +- +- // If gold is not installed, gcc will silently switch +- // back to ld.bfd. So we parse the version information +- // and provide a useful error if gold is missing. ++ // In both cases, switch to gold if gold is available. + name, args := flagExtld[0], flagExtld[1:] + args = append(args, "-fuse-ld=gold", "-Wl,--version") + cmd := exec.Command(name, args...) + if out, err := cmd.CombinedOutput(); err == nil { +- if !bytes.Contains(out, []byte("GNU gold")) { +- log.Fatalf("ARM external linker must be gold (issue #15696), but is not: %s", out) ++ if bytes.Contains(out, []byte("GNU gold")) { ++ altLinker = "gold" + } + } + } +-- +2.32.0 + diff --git a/0005-Skip-TestCrashDumpsAllThreads.patch b/0005-Skip-TestCrashDumpsAllThreads.patch deleted file mode 100644 index 34a84b3..0000000 --- a/0005-Skip-TestCrashDumpsAllThreads.patch +++ /dev/null @@ -1,28 +0,0 @@ -From c0c22e2aa7d1901c97da04f834ce9c7b9e38be80 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= -Date: Sun, 11 Feb 2024 12:08:35 +0100 -Subject: [PATCH] Skip TestCrashDumpsAllThreads - -See golang.org/issues/64650 ---- - src/runtime/crash_unix_test.go | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/runtime/crash_unix_test.go b/src/runtime/crash_unix_test.go -index 123a462423..a0034d6455 100644 ---- a/src/runtime/crash_unix_test.go -+++ b/src/runtime/crash_unix_test.go -@@ -74,6 +74,10 @@ func TestCrashDumpsAllThreads(t *testing.T) { - t.Skip("skipping; SIGQUIT is blocked, see golang.org/issue/19196") - } - -+ if runtime.GOOS == "linux" && runtime.GOARCH == "s390x" { -+ t.Skip("skipping; frequent TestCrashDumpsAllThreads failures on linux/s390x, see golang.org/issue/64650") -+ } -+ - testenv.MustHaveGoBuild(t) - - if strings.Contains(os.Getenv("GOFLAGS"), "mayMoreStackPreempt") { --- -2.43.0 - diff --git a/0006-Default-to-ld.bfd-on-ARM64.patch b/0006-Default-to-ld.bfd-on-ARM64.patch deleted file mode 100644 index 369b4e6..0000000 --- a/0006-Default-to-ld.bfd-on-ARM64.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 46ec67413008607e2150e3395668e54e538c5b6b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= -Date: Wed, 19 Jun 2024 10:18:58 +0200 -Subject: [PATCH] Default to ld.bfd on ARM64 - ---- - src/cmd/link/internal/ld/lib.go | 20 +++++++------------- - 1 file changed, 7 insertions(+), 13 deletions(-) - -diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go -index eab74dc328..b401f58727 100644 ---- a/src/cmd/link/internal/ld/lib.go -+++ b/src/cmd/link/internal/ld/lib.go -@@ -1620,22 +1620,16 @@ func (ctxt *Link) hostlink() { - } - - if ctxt.Arch.InFamily(sys.ARM64) && buildcfg.GOOS == "linux" { -- // On ARM64, the GNU linker will fail with -- // -znocopyreloc if it thinks a COPY relocation is -- // required. Switch to gold. -- // https://sourceware.org/bugzilla/show_bug.cgi?id=19962 -- // https://go.dev/issue/22040 -- altLinker = "gold" -- -- // If gold is not installed, gcc will silently switch -- // back to ld.bfd. So we parse the version information -- // and provide a useful error if gold is missing. -+ // Use ld.bfd as the default linker -+ altLinker = "bfd" -+ -+ // Provide a useful error if ld.bfd is missing - name, args := flagExtld[0], flagExtld[1:] -- args = append(args, "-fuse-ld=gold", "-Wl,--version") -+ args = append(args, "-fuse-ld=bfd", "-Wl,--version") - cmd := exec.Command(name, args...) - if out, err := cmd.CombinedOutput(); err == nil { -- if !bytes.Contains(out, []byte("GNU gold")) { -- log.Fatalf("ARM64 external linker must be gold (issue #15696, 22040), but is not: %s", out) -+ if !bytes.Contains(out, []byte("GNU ld")) { -+ log.Fatalf("ARM64 external linker must be ld.bfd, but is not: %s", out) - } - } - } --- -2.45.1 - diff --git a/README.packit b/README.packit deleted file mode 100644 index b4b46e3..0000000 --- a/README.packit +++ /dev/null @@ -1,3 +0,0 @@ -This repository is maintained by packit. -https://packit.dev/ -The file was generated using packit 1.12.0.post1.dev20+g7d30dac21. diff --git a/bundled-deps.sh b/bundled-deps.sh index 3d5d6b7..51dd446 100755 --- a/bundled-deps.sh +++ b/bundled-deps.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#! /bin/bash # Copyright (C) 2021 Jakub Čajka jcajka@redhat.com # # This program is free software; you can redistribute it and/or @@ -16,14 +16,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. provides="" - for bundle in $(find -name modules.txt); do - provides="$provides\n$(cat "$bundle" | - grep "^# " | - grep -v "# explicit" | - sed -r s/"^#.* => "// | - sed -r "s/# //" | - sed -r "s:(.*) v(.*):Provides\: bundled(golang(\1)) = \2:" | - sed '/= .*/s/-/./g')" - done +provides="$provides\n$(cat "$bundle" | grep "^# " | grep -v "# explicit" | sed -r s/"^#.* => "// | sed -r "s/# //" | sed -r "s:(.*) v(.*):Provides\: bundled(golang(\1)) = \2:")" +done echo -e "$provides" | sed 's/-/./g' | sort -u diff --git a/changelog b/changelog index f0b1671..aa343be 100644 --- a/changelog +++ b/changelog @@ -1,60 +1,30 @@ -* Tue Aug 08 2023 Packit - 1.21.0-1 -New release ${PACKIT_PROJECT_VERSION} +* Thu Sep 07 2023 Alejandro Sáez - 1.19.13-1 +- Update to go1.19.13 -* Thu Jul 20 2023 Fedora Release Engineering - 1.21~rc3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild +* Tue Aug 01 2023 Alejandro Sáez - 1.19.12-1 +- Update to go1.19.12 -* Fri Jul 14 2023 Alejandro Sáez - 1.21~rc3-1 -- Update to go1.21rc3 -- Update bundled dependencies. -- Update pcre-devel to pcre2-devel -- Add go-filesystem -- Remove skipping tests, related: https://github.com/golang/go/issues/39466 -- Remove 0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch, already merged -- Rename 0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch to 0001-Disable-Google-s-proxy-sumdb-and-toolchain.patch -- Update 0001-Disable-Google-s-proxy-sumdb-and-toolchain.patch -- Update 0004-cmd-link-use-gold-on-ARM-ARM64-only-if-gold-is-avail.patch -- Resolves: rhbz#2128303 -- Resolves: rhbz#2215635 -- Resolves: rhbz#2172392 +* Fri Jul 14 2023 Alejandro Sáez - 1.19.11-1 +- Update to go1.19.11 -* Tue Jul 11 2023 Mike Rochefort - 1.20.6-1 -- Update to go 1.20.6 +* Thu Jun 08 2023 Alejandro Sáez - 1.19.10-1 +- Update to go1.19.10 -* Tue Jun 06 2023 Alejandro Sáez - 1.20.5-1 -- Update to go 1.20.5 +* Fri May 05 2023 Alejandro Sáez - 1.19.9-1 +- Update to go1.19.9 -* Tue May 02 2023 Alejandro Sáez - 1.20.4-1 -- Update to go1.20.4 -- Resolves: rhbz#2184454 +* Tue Apr 04 2023 Alejandro Sáez - 1.19.8-1 +- Update to go1.19.8 -* Sat Apr 15 2023 Maxwell G - 1.20.3-2 -- Fix broken golang-race update path +* Thu Mar 23 2023 Bradley G Smith - 1.19.7-1 +- Update to go1.19.7 +- Resolves #2176528 in part. -* Tue Apr 04 2023 Alejandro Sáez - 1.20.3-1 -- Update to go1.20.3 +* Wed Feb 15 2023 Alejandro Sáez - 1.19.6-1 +- Update to go1.19.6 -* Fri Mar 10 2023 Mike Rochefort - 1.20.2-1 -- Update to go1.20.2 -- Resolves: rhbz#2176528 - -* Wed Feb 15 2023 Alejandro Sáez - 1.20.1 -- Update to go1.20.1 -- Resolves: rhbz#2169896 - -* Thu Feb 02 2023 Alejandro Sáez - 1.20-1 -- Update to go1.20 -- Resolves: rhbz#2152070 - -* Thu Jan 19 2023 Fedora Release Engineering - 1.20~rc3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 17 2023 Alejandro Sáez - 1.20~rc3-1 -- Update to go1.20rc3 -- Disable race package due go 1.20 new feature - -* Wed Jan 04 2023 Alejandro Sáez - 1.20-0.rc2-1 -- Update to go1.20rc2 +* Tue Jan 10 2023 Alejandro Sáez - 1.19.5-1 +- Update to go1.19.5 * Wed Dec 07 2022 Alejandro Sáez - 1.19.4-1 - Update to go1.19.4 diff --git a/fedora.go b/fedora.go index 3ff4d3e..81b28ba 100644 --- a/fedora.go +++ b/fedora.go @@ -1,9 +1,5 @@ -//go:build rpm_crashtraceback // +build rpm_crashtraceback -// Copyright 2017 The Fedora Project Contributors. All rights reserved. -// Use of this source code is governed by the MIT license. - package runtime func init() { diff --git a/fix_cgo_panic-with-gcc15-in-368.patch b/fix_cgo_panic-with-gcc15-in-368.patch deleted file mode 100644 index 372af28..0000000 --- a/fix_cgo_panic-with-gcc15-in-368.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5f566346b70403891cfc52d0c807d72335691708 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= -Date: Wed, 15 Jan 2025 21:45:33 +0100 -Subject: [PATCH] Fix _cgo_panic with gcc15 in 368 - ---- - src/cmd/link/internal/x86/asm.go | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cmd/link/internal/x86/asm.go b/src/cmd/link/internal/x86/asm.go -index d535e5fb4d..c4253a8c08 100644 ---- a/src/cmd/link/internal/x86/asm.go -+++ b/src/cmd/link/internal/x86/asm.go -@@ -184,7 +184,7 @@ func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade - return true - } - -- if r.Off() >= 2 && sData[r.Off()-2] == 0xff && sData[r.Off()-1] == 0xb3 { -+ if r.Off() >= 2 && sData[r.Off()-2] == 0xff && sData[r.Off()-1] >= 0xb0 && sData[r.Off()-1] <= 0xb7 { - su.MakeWritable() - // turn PUSHL of GOT entry into PUSHL of symbol itself. - // use unnecessary SS prefix to keep instruction same length. --- -2.47.1 - diff --git a/golang.spec b/golang.spec index ba57da1..00e943b 100644 --- a/golang.spec +++ b/golang.spec @@ -1,4 +1,11 @@ %bcond_with bootstrap +# temporalily ignore test failures +# due to https://github.com/golang/go/issues/39466 +%ifarch aarch64 +%bcond_without ignore_tests +%else +%bcond_with ignore_tests +%endif # build ids are not currently generated: # https://code.google.com/p/go/issues/detail?id=5238 @@ -32,14 +39,14 @@ # Golang build options. # Build golang using external/internal(close to cgo disabled) linking. -%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x riscv64 +%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x %global external_linker 1 %else %global external_linker 0 %endif # Build golang with cgo enabled/disabled(later equals more or less to internal linking). -%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x riscv64 +%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x %global cgo_enabled 1 %else %global cgo_enabled 0 @@ -94,18 +101,18 @@ %ifarch s390x %global gohostarch s390x %endif -%ifarch riscv64 -%global gohostarch riscv64 -%endif # Comment out go_prerelease and go_patch as needed -%global go_api 1.26 -%global go_prerelease rc1 -#global go_patch 1 +%global go_api 1.20 +#global go_prerelease rc3 +%global go_patch 11 %global go_version %{go_api}%{?go_patch:.%{go_patch}}%{?go_prerelease:~%{go_prerelease}} %global go_source %{go_api}%{?go_patch:.%{go_patch}}%{?go_prerelease} +# For rpmdev-bumpspec and releng automation +%global baserelease 2 + Name: golang Version: %{go_version} Release: %autorelease @@ -123,41 +130,36 @@ BuildRequires: gcc-go >= 5 %else BuildRequires: golang > 1.4 %endif +%if 0%{?rhel} > 6 || 0%{?fedora} > 0 BuildRequires: hostname - +%else +BuildRequires: net-tools +%endif # for tests -BuildRequires: pcre2-devel, glibc-static, perl-interpreter, procps-ng +BuildRequires: pcre-devel, glibc-static, perl-interpreter, procps-ng Provides: go = %{version}-%{release} # Bundled/Vendored provides generated by bundled-deps.sh based on the in tree module data -Provides: bundled(golang(github.com/google/pprof)) = 0.0.0.20251114195745.4902fdda35c8 -Provides: bundled(golang(github.com/ianlancetaylor/demangle)) = 0.0.0.20250417193237.f615e6bd150b -Provides: bundled(golang(golang.org/x/arch)) = 0.23.0 -Provides: bundled(golang(golang.org/x/build)) = 0.0.0.20251128064159.b9bfd88b30e8 -Provides: bundled(golang(golang.org/x/crypto)) = 0.46.1.0.20251210140736.7dacc380ba00 -Provides: bundled(golang(golang.org/x/mod)) = 0.30.1.0.20251115032019.269c237cf350 -Provides: bundled(golang(golang.org/x/net)) = 0.47.1.0.20251128220604.7c360367ab7e -Provides: bundled(golang(golang.org/x/sync)) = 0.19.0 -Provides: bundled(golang(golang.org/x/sys)) = 0.39.0 -Provides: bundled(golang(golang.org/x/telemetry)) = 0.0.0.20251128220624.abf20d0e57ec -Provides: bundled(golang(golang.org/x/term)) = 0.38.0 -Provides: bundled(golang(golang.org/x/text)) = 0.32.0 -Provides: bundled(golang(golang.org/x/tools)) = 0.27.0 -Provides: bundled(golang(golang.org/x/tools)) = 0.39.1.0.20251205000126.062ef7b6ced2 -Provides: bundled(golang(rsc.io/markdown)) = 0.0.0.20240306144322.0bf8f97ee8ef +# - in version filed substituted with . per versioning guidelines +Provides: bundled(golang(github.com/google/pprof)) = 0.0.0.20221118152302.e6195bd50e26 +Provides: bundled(golang(github.com/ianlancetaylor/demangle)) = 0.0.0.20220319035150.800ac71e25c2 +Provides: bundled(golang(golang.org/x/arch)) = 0.1.1.0.20221116201807.1bb480fc256a +Provides: bundled(golang(golang.org/x/crypto)) = 0.3.1.0.20221117191849.2c476679df9a +Provides: bundled(golang(golang.org/x/mod)) = 0.7.0 +Provides: bundled(golang(golang.org/x/net)) = 0.4.1.0.20231027154331.b8c2abfc1559 +Provides: bundled(golang(golang.org/x/sync)) = 0.1.0 +Provides: bundled(golang(golang.org/x/sys)) = 0.3.0 +Provides: bundled(golang(golang.org/x/term)) = 0.2.0 +Provides: bundled(golang(golang.org/x/text)) = 0.5.0 +Provides: bundled(golang(golang.org/x/tools)) = 0.3.1.0.20230118190848.070db2996ebe Requires: %{name}-bin = %{version}-%{release} Requires: %{name}-src = %{version}-%{release} -Requires: go-filesystem -Patch1: 0001-Modify-go.env.patch -Patch5: 0005-Skip-TestCrashDumpsAllThreads.patch -Patch6: 0006-Default-to-ld.bfd-on-ARM64.patch -# Related to https://gcc.gnu.org/PR118497 -Patch8: fix_cgo_panic-with-gcc15-in-368.patch -# Related to https://github.com/golang/go/issues/74476 -Patch9: skip_lsan_tests.patch +Patch2: 0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch +Patch3: 0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch +Patch4: 0004-cmd-link-use-gold-on-ARM-ARM64-only-if-gold-is-avail.patch # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -252,8 +254,11 @@ Requires(preun): %{_sbindir}/update-alternatives # This is an odd issue, still looking for a better fix. Requires: glibc Requires: gcc -Recommends: git-core, subversion, mercurial - +%if 0%{?rhel} && 0%{?rhel} < 8 +Requires: git, subversion, mercurial +%else +Recommends: git, subversion, mercurial +%endif %description bin %{summary} @@ -347,7 +352,7 @@ mkdir -p $RPM_BUILD_ROOT%{goroot} # install everything into libdir (until symlink problems are fixed) # https://code.google.com/p/go/issues/detail?id=5830 -cp -apv api bin doc lib pkg src misc test go.env VERSION \ +cp -apv api bin doc lib pkg src misc test VERSION \ $RPM_BUILD_ROOT%{goroot} echo "== 2 ==" # bz1099206 @@ -401,9 +406,12 @@ echo "== 4 ==" echo "== 5 ==" %if %{race} + find pkg/*_race/ -type d -printf '%%%dir %{goroot}/%p\n' >> $race_list find pkg/*_race/ ! -type d -printf '%{goroot}/%p\n' >> $race_list + %endif + find test/ -type d -printf '%%%dir %{goroot}/%p\n' >> $tests_list find test/ ! -type d -printf '%{goroot}/%p\n' >> $tests_list find src/ -type d -a \( -name testdata -o -ipath '*/testdata/*' \) -printf '%%%dir %{goroot}/%p\n' >> $tests_list @@ -462,12 +470,7 @@ export CGO_ENABLED=0 #endif # make sure to not timeout -%ifnarch riscv64 export GO_TEST_TIMEOUT_SCALE=2 -%else -# NOTE(davidlt): 20 is probably too much, but it's only for riscv and it works -export GO_TEST_TIMEOUT_SCALE=20 -%endif %if %{fail_on_tests} ./run.bash --no-rebuild -v -v -v -k @@ -498,8 +501,6 @@ fi %dir %{goroot} %{goroot}/api/ %{goroot}/lib/time/ -%{goroot}/lib/wasm/ -%{goroot}/lib/fips140/ # ensure directory ownership, so they are cleaned up if empty %dir %{gopath} @@ -528,7 +529,6 @@ fi %{_bindir}/gofmt %{goroot}/bin/linux_%{gohostarch}/go %{goroot}/bin/linux_%{gohostarch}/gofmt -%{goroot}/go.env %if %{shared} %files shared -f go-shared.list diff --git a/plans/ci.fmf b/plans/ci.fmf index 1dbcaef..3fd3ab7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,5 @@ summary: CI Gating Plan discover: how: fmf - url: https://src.fedoraproject.org/tests/golang execute: how: tmt diff --git a/skip_lsan_tests.patch b/skip_lsan_tests.patch deleted file mode 100644 index 9a47ee7..0000000 --- a/skip_lsan_tests.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 958f06663d81dd4b946fce963b9f985f68da6212 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= -Date: Wed, 16 Jul 2025 13:14:03 +0200 -Subject: [PATCH] Skip lsan_test.go in aarch64 - -Reference: https://github.com/golang/go/issues/74476 ---- - src/cmd/cgo/internal/testsanitizers/lsan_test.go | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cmd/cgo/internal/testsanitizers/lsan_test.go b/src/cmd/cgo/internal/testsanitizers/lsan_test.go -index 4dde3d20ec..3bcf0eba51 100644 ---- a/src/cmd/cgo/internal/testsanitizers/lsan_test.go -+++ b/src/cmd/cgo/internal/testsanitizers/lsan_test.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build linux || (freebsd && amd64) -+//go:build (linux && !(arm64 || riscv64)) || (freebsd && amd64) - - package sanitizers_test - --- -2.50.1 diff --git a/sources b/sources index dfecfe3..fde4f50 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (go1.26rc1.src.tar.gz) = 6696ee765dcde64b830b14e20a5fdf6324916211bff80a62d0db0cbef58bb0856f02e88e95b2f1a3ad6d9282ebd04a377a0b000d56849576caedbd526c9a7923 +SHA512 (go1.20.11.src.tar.gz) = d89fb9ecd9fe394b7f6b9a0ad98db2f9401bec203d64cc5c301d3678f6a74524bae85a9ece31ad2ea66a3ffec90f35cb30e600e0c910bcc6010ad36b501c5c37 diff --git a/tests/Sanity/basic-smoke/Makefile b/tests/Sanity/basic-smoke/Makefile new file mode 100644 index 0000000..801fdb1 --- /dev/null +++ b/tests/Sanity/basic-smoke/Makefile @@ -0,0 +1,64 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/golang/Sanity/basic-smoke +# Description: basic smoke test for go +# Author: Edjunior Machado +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/golang/Sanity/basic-smoke +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Edjunior Machado " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: basic smoke test for go" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: golang" >> $(METADATA) + @echo "Requires: golang" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHEL6 -RHELClient5 -RHELServer5" >> $(METADATA) + @echo "Architectures: s390x x86_64 ppc64le aarch64" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Sanity/basic-smoke/PURPOSE b/tests/Sanity/basic-smoke/PURPOSE new file mode 100644 index 0000000..263fb91 --- /dev/null +++ b/tests/Sanity/basic-smoke/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/golang/Sanity/basic-smoke +Description: basic smoke test for go +Author: Edjunior Machado diff --git a/tests/Sanity/basic-smoke/main.fmf b/tests/Sanity/basic-smoke/main.fmf new file mode 100644 index 0000000..3c6d036 --- /dev/null +++ b/tests/Sanity/basic-smoke/main.fmf @@ -0,0 +1,13 @@ +summary: basic smoke test for go +description: '' +contact: +- Edjunior Machado +component: +- golang +test: ./runtest.sh +framework: beakerlib +recommend: +- golang +duration: 5m +extra-summary: /tools/golang/Sanity/basic-smoke +extra-task: /tools/golang/Sanity/basic-smoke diff --git a/tests/Sanity/basic-smoke/runtest.sh b/tests/Sanity/basic-smoke/runtest.sh new file mode 100755 index 0000000..e14b324 --- /dev/null +++ b/tests/Sanity/basic-smoke/runtest.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/golang/Sanity/basic-smoke +# Description: basic smoke test for go +# Author: Edjunior Machado +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="$(rpm -qf $(which go))" + +# Conserve the non-zero return value through the pipe +set -o pipefail + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest + cat << EOF > $TmpDir/hello.go +package main +import "fmt" +func main() { + fmt.Println("hello world") +} +EOF + rlAssertExists "$TmpDir/hello.go" + + rlRun "go run $TmpDir/hello.go |& tee $TmpDir/go-run-hello.out" 0 "Testing 'go run'" + rlAssertNotDiffer <(echo 'hello world') go-run-hello.out + + rlRun "go build -o $TmpDir/hello $TmpDir/hello.go" 0 "Testing 'go build'" + rlAssertExists "hello" + + rlRun "$TmpDir/hello |& tee $TmpDir/hello.out" 0 "Running binary" + rlAssertNotDiffer <(echo 'hello world') hello.out + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd