Compare commits

..

16 commits

Author SHA1 Message Date
Mike Rochefort
31f5cc6ed0 Update to Go 1.20.11 2023-11-16 17:21:23 +01:00
Alejandro Sáez
6d79bb33f3 Remove golang-race 2023-10-19 18:47:45 +02:00
Alejandro Sáez
c912b0acd1 Update bundled-deps.sh to follow the versioning guidelines 2023-10-19 18:22:59 +02:00
Alejandro Sáez
f7c00fcc63 Update to Go 1.20.10
Update the License field to a SPDX compatible license
2023-10-19 18:15:51 +02:00
Alejandro Sáez
aa60e64fae Convert to %autorelease and %autochangelog
[skip changelog]
2023-10-19 18:07:31 +02:00
Alejandro Sáez
55266f33f5 Remove --no-clean
Resolves: rhbz#2087997
2023-10-19 18:06:52 +02:00
Alejandro Sáez
a3d39283de Update to go1.19.13 2023-09-07 16:21:13 +02:00
Alejandro Sáez
215e660124 Update to go1.19.12 2023-08-01 22:57:24 +02:00
Alejandro Sáez
26d5671d91 Update to go1.19.11 2023-07-14 18:31:10 +02:00
Alejandro Sáez
d8cf677a73 Update to go1.19.10 2023-06-08 16:56:46 +02:00
Alejandro Sáez
fe0f876dbf Update to go1.19.9 2023-05-05 12:44:25 +02:00
Alejandro Sáez
f500af6542 Update to Go 1.19.8 2023-04-04 23:20:55 +02:00
Bradley G Smith
056f095d8e Update to go1.19.7
Resolves #2176528 in part.
2023-03-23 09:40:45 -07:00
Alejandro Sáez
f9fa9f1931 Update to go1.19.6 2023-02-15 10:16:24 +01:00
Alejandro Sáez
ce4fd44e01 Update to go 1.19.5 2023-01-11 10:14:35 +00:00
Edjunior Machado
293819ffca tests: Fix fmf plan attributes 2023-01-11 10:43:46 +01:00
21 changed files with 368 additions and 370 deletions

62
.gitignore vendored
View file

@ -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

View file

@ -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

View file

@ -1,42 +0,0 @@
From 39432f71436c41201450a523dc41035c92d27569 Mon Sep 17 00:00:00 2001
From: Maxwell G <maxwell@gtmx.me>
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

View file

@ -0,0 +1,41 @@
From 67a4711d09c6595c17f32470c15bf471c287777d Mon Sep 17 00:00:00 2001
From: Michael Munday <munday@ca.ibm.com>
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

View file

@ -0,0 +1,48 @@
From fa250374b727439159bc9f203b854bb5df00186f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20=C4=8Cajka?= <jcajka@redhat.com>
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

View file

@ -0,0 +1,53 @@
From 5ccf9f47bf4f5ba53e0ab7338a7fd4626714cfb2 Mon Sep 17 00:00:00 2001
From: Jeffery To <jeffery.to@gmail.com>
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

View file

@ -1,28 +0,0 @@
From c0c22e2aa7d1901c97da04f834ce9c7b9e38be80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
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

View file

@ -1,46 +0,0 @@
From 46ec67413008607e2150e3395668e54e538c5b6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
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

View file

@ -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.

View file

@ -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

View file

@ -1,60 +1,30 @@
* Tue Aug 08 2023 Packit <hello@packit.dev> - 1.21.0-1
New release ${PACKIT_PROJECT_VERSION}
* Thu Sep 07 2023 Alejandro Sáez <asm@redhat.com> - 1.19.13-1
- Update to go1.19.13
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.21~rc3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Aug 01 2023 Alejandro Sáez <asm@redhat.com> - 1.19.12-1
- Update to go1.19.12
* Fri Jul 14 2023 Alejandro Sáez <asm@redhat.com> - 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 <asm@redhat.com> - 1.19.11-1
- Update to go1.19.11
* Tue Jul 11 2023 Mike Rochefort <mroche@omenos.dev> - 1.20.6-1
- Update to go 1.20.6
* Thu Jun 08 2023 Alejandro Sáez <asm@redhat.com> - 1.19.10-1
- Update to go1.19.10
* Tue Jun 06 2023 Alejandro Sáez <asm@redhat.com> - 1.20.5-1
- Update to go 1.20.5
* Fri May 05 2023 Alejandro Sáez <asm@redhat.com> - 1.19.9-1
- Update to go1.19.9
* Tue May 02 2023 Alejandro Sáez <asm@redhat.com> - 1.20.4-1
- Update to go1.20.4
- Resolves: rhbz#2184454
* Tue Apr 04 2023 Alejandro Sáez <asm@redhat.com> - 1.19.8-1
- Update to go1.19.8
* Sat Apr 15 2023 Maxwell G <maxwell@gtmx.me> - 1.20.3-2
- Fix broken golang-race update path
* Thu Mar 23 2023 Bradley G Smith <bradley.g.smith@gmail.com> - 1.19.7-1
- Update to go1.19.7
- Resolves #2176528 in part.
* Tue Apr 04 2023 Alejandro Sáez <asm@redhat.com> - 1.20.3-1
- Update to go1.20.3
* Wed Feb 15 2023 Alejandro Sáez <asm@redhat.com> - 1.19.6-1
- Update to go1.19.6
* Fri Mar 10 2023 Mike Rochefort <mroche@omenos.dev> - 1.20.2-1
- Update to go1.20.2
- Resolves: rhbz#2176528
* Wed Feb 15 2023 Alejandro Sáez <asm@redhat.com> - 1.20.1
- Update to go1.20.1
- Resolves: rhbz#2169896
* Thu Feb 02 2023 Alejandro Sáez <asm@redhat.com> - 1.20-1
- Update to go1.20
- Resolves: rhbz#2152070
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.20~rc3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Jan 17 2023 Alejandro Sáez <asm@redhat.com> - 1.20~rc3-1
- Update to go1.20rc3
- Disable race package due go 1.20 new feature
* Wed Jan 04 2023 Alejandro Sáez <asm@redhat.com> - 1.20-0.rc2-1
- Update to go1.20rc2
* Tue Jan 10 2023 Alejandro Sáez <asm@redhat.com> - 1.19.5-1
- Update to go1.19.5
* Wed Dec 07 2022 Alejandro Sáez <asm@redhat.com> - 1.19.4-1
- Update to go1.19.4

View file

@ -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() {

View file

@ -1,25 +0,0 @@
From 5f566346b70403891cfc52d0c807d72335691708 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
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

View file

@ -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

View file

@ -1,6 +1,5 @@
summary: CI Gating Plan
discover:
how: fmf
url: https://src.fedoraproject.org/tests/golang
execute:
how: tmt

View file

@ -1,25 +0,0 @@
From 958f06663d81dd4b946fce963b9f985f68da6212 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
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

View file

@ -1 +1 @@
SHA512 (go1.26rc1.src.tar.gz) = 6696ee765dcde64b830b14e20a5fdf6324916211bff80a62d0db0cbef58bb0856f02e88e95b2f1a3ad6d9282ebd04a377a0b000d56849576caedbd526c9a7923
SHA512 (go1.20.11.src.tar.gz) = d89fb9ecd9fe394b7f6b9a0ad98db2f9401bec203d64cc5c301d3678f6a74524bae85a9ece31ad2ea66a3ffec90f35cb30e600e0c910bcc6010ad36b501c5c37

View file

@ -0,0 +1,64 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/golang/Sanity/basic-smoke
# Description: basic smoke test for go
# Author: Edjunior Machado <emachado@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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 <emachado@redhat.com>" > $(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)

View file

@ -0,0 +1,3 @@
PURPOSE of /tools/golang/Sanity/basic-smoke
Description: basic smoke test for go
Author: Edjunior Machado <emachado@redhat.com>

View file

@ -0,0 +1,13 @@
summary: basic smoke test for go
description: ''
contact:
- Edjunior Machado <emachado@redhat.com>
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

View file

@ -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 <emachado@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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