Compare commits

...

59 Commits
master ... f38

Author SHA1 Message Date
Alejandro Sáez 92687b0571 Update to go1.20.5 2023-06-08 16:38:01 +02:00
Alejandro Sáez 6f88aa7133 Update to go1.20.4
Resolves: rhbz#2184454
2023-05-05 12:33:46 +02:00
Maxwell G f98566f752
Fix broken golang-race update path
```
Error:
 Problem: package golang-race-1.19.7-1.fc37.x86_64 requires golang = 1.19.7-1.fc37, but none of the providers can be installed
  - golang-1.19.7-1.fc37.x86_64 does not belong to a distupgrade repository
  - problem with installed package golang-race-1.19.7-1.fc37.x86_64
```
2023-04-15 23:15:16 +00:00
Alejandro Sáez f99fab394c Update to go1.20.3 2023-04-07 14:00:28 +02:00
Bradley G Smith 40d426bb8e Update to go1.20.2
Resolves: rhbz#2176528, in part
2023-03-23 10:38:48 -07:00
Alejandro Sáez a076d7e3bb Update to go1.20.1
Resolves: rhbz#2169896
2023-02-15 10:12:05 +01:00
Alejandro Sáez 2f747a3e62 Update to go1.20
Resolves: rhbz#2152070
2023-02-02 11:07:48 +01:00
Fedora Release Engineering fa4d6ce0c2 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 05:51:57 +00:00
Alejandro Sáez f7c0afe323 Update to go1.20rc3
Disable race package due go 1.20 new feature
2023-01-17 18:38:58 +00:00
Alejandro Sáez 1d2570b076 Update to go1.20rc2 2023-01-17 18:38:58 +00:00
Edjunior Machado e4fa10a046 tests: Drop path attribute 2022-12-09 16:21:13 +01:00
Edjunior Machado adaaa04cd7 tests: Fix fmf plan attributes 'directory'/'path' and 'how'
Thanks mprchlik@redhat.com for spotting the issue and providing the fix.
2022-12-08 14:25:44 +01:00
Alejandro Sáez 67a51aa259 Update to go1.19.4
Resolves: rhbz#2151595
2022-12-07 17:15:53 +01:00
Amit Shah c874af597b Fix build without the gold linker
The Go runtime silently chose the gold linker on arm and aarch64 build
targets to work around a binutils bug.

That bug was from 2016, and has been fixed in binutils for a while.  But
the Go workaround was still in place.

The workaround to choose gold was supposed to error out during the
configure phase if gold wasn't found - but that doesn't happen.

This leads to builds on aarch64 failing if attempting to compile without
gold.

Just removing the special condition in the Go source code:

https://go-review.googlesource.com/c/go/+/391115/

works, but that patch is unlikely to be merged upstream.

A patch fixing the build is more likely to be merged:

https://go-review.googlesource.com/c/go/+/366279/

which updates the linker selection to use gold only if available.

References to this bug in upstream Go and Binutils:

https://github.com/golang/go/issues/22040
https://sourceware.org/bugzilla/show_bug.cgi?id=19962

Including the likely-to-be-merged patch here.
2022-11-08 23:27:48 +00:00
Mike Rochefort fd8ecd035f Update to go1.19.3
Resolves: rhbz#2139548
2022-11-06 19:25:07 -05:00
Alejandro Sáez 0d02567844 Update to go1.19.2 2022-10-04 20:05:41 +02:00
Alejandro Sáez b001866299 Update to go1.19.1 2022-09-06 18:45:54 +02:00
Alejandro Sáez 797e3f5003 Update to go1.19.0
Remove reference to AUTHORS and CONTRIBUTORS due to https://github.com/golang/go/issues/53961
2022-08-02 19:55:06 +02:00
Fedora Release Engineering 47c799f38a Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 07:16:08 +00:00
Mike Rochefort f7794baf11 Update to go1.19rc2
- Remove tzdata patch
- Remove go-srpm-macros dependency
- Resolves: rhbz#2095927
2022-07-18 09:43:28 -04:00
Alejandro Sáez d908c3bbe4 Update to 1.18.4 2022-07-13 18:43:46 +02:00
Robert-André Mauchin 1497f816fe Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191, CVE-2022-29526, CVE-2022-30629 2022-06-19 11:08:08 +02:00
Alejandro Sáez 83d5902e19 Update to 1.18.3
Resolves: rhbz#2092631
2022-06-04 08:41:19 +02:00
Mike Rochefort 6cea84893c Update to 1.18.2
Resolves: rhbz#2075141
2022-05-15 00:04:04 -04:00
Neal Gompa a69e1ac7a1 Fix Go version macro configuration 2022-04-19 08:20:57 -04:00
Alejandro Sáez cc9e30136f Update to 1.18.1 2022-04-13 07:25:09 +02:00
Mike Rochefort 6b8fdb5e69 Update to go1.18 GA
- Update to 1.18
- Resolves: rhbz#2064409
2022-03-15 14:51:08 -04:00
Mike Rochefort 48eb2b7f8e Update to 1.18rc1
Resolves: rhbz#2002859
2022-02-17 11:56:05 -05:00
Mike Rochefort 43672d0906 Update to 1.18beta2
- Remove testshared-size-limit patch (now upstream) 83fc097
- Related: rhbz#2002859
2022-01-31 17:24:46 -05:00
Fedora Release Engineering 0848775a51 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 06:57:30 +00:00
Mike Rochefort 64603915f8 Update version logic and source location
Version logic correctly handles prerelease,
upstream GA, and minor versions.

Now using the go.dev domain for source tarball
and URL pointers: https://go.dev/blog/tidy-web
2022-01-11 15:37:36 +01:00
Jakub Čajka f8a475e0a1 Increase size check limit fixing test failure on ppc64le
Resolves: BZ#2030308
2022-01-03 20:02:00 +00:00
Alejandro Sáez aa0c97a20c Add sources 2021-12-16 19:12:38 +01:00
Mike Rochefort 4db6ed1372 Update to 1.18beta1
Related: rhbz#2002859
2021-12-14 22:42:00 -05:00
Alejandro Sáez d93c6975bb Update to 1.17.5
Update bundles
Related: rhbz#2002859
2021-12-14 17:56:13 +01:00
Alejandro Sáez 80aa0cef82 Update to 1.17.4
Related: rhbz#2002859
Ignore ppc64le failing tests
2021-12-07 11:38:50 +01:00
Alejandro Sáez 7a55310f4e Update to 1.17.3
Related: rhbz#2002859
2021-11-22 19:21:47 +01:00
Alejandro Sáez a910a81517 Update to go1.17
Resolves: rhbz#1957935
2021-08-18 18:06:44 +02:00
Alejandro Sáez 1f03484127 Update to go1.17rc2 2021-08-09 19:44:16 +02:00
Jakub Čajka 807d052dd1
- Fix crash in VDSO calls on ppc64le 2021-07-29 11:23:35 +02:00
Fedora Release Engineering 989466644d - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 02:34:28 +00:00
Jakub Čajka dfa94cebbc
Add new sources
Mention tracking BZ
2021-07-19 13:57:42 +02:00
Michael Rochefort fb3fb1e87e Update to go1.16.6
- Security fix for CVE-2021-34558
2021-07-14 11:19:12 -04:00
Alejandro Sáez 755f2e9f59 Adds 1.16.5 sources 2021-06-21 20:07:34 +02:00
Mike Rochefort e5f2544a1e Update to go1.16.5
- Security fix for CVE-2021-33195
- Security fix for CVE-2021-33196
- Security fix for CVE-2021-33197
- Fix OOM with large exponents in Rat.SetString gh#45910
2021-06-21 13:12:52 -04:00
Neal Gompa decf6e95fe Minor tweaks to the spec 2021-06-02 14:59:32 -04:00
Jakub Čajka 4f18e62ff3
Fix linker issue on ppc64le 2021-05-13 16:51:32 +02:00
Alejandro Sáez d540903bfa Update to go1.16.4
Security fix for CVE-2021-31525
Resolves: rhbz#1958343
2021-05-10 18:55:51 +02:00
Alejandro Sáez 7da03d0a37 Update to go1.16.3 2021-04-09 17:47:50 +02:00
Alejandro Sáez 77c72f2150 Update to go1.16.2
Resolves: rhbz#1937435
2021-03-23 15:15:16 +01:00
Jakub Čajka e2c9fbb1b1
Reabse to go1.16
Even better bundled provides
2021-02-18 11:09:21 +01:00
Jakub Čajka 8b7777d5f3
Improved bundled provides 2021-02-16 15:58:44 +01:00
Jakub Čajka 92b3f872c9
Test fix for s390x 2021-02-01 13:49:42 +01:00
Neal Gompa 5d5ddbae21 Update to go1.16rc1
Related: BZ#1913835
2021-01-31 10:52:07 -05:00
Fedora Release Engineering 2690512673 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 08:58:06 +00:00
Alejandro Saez Morollon b016287d02 Merge #11 `Introduce CI gating` 2021-01-18 17:49:07 +00:00
Edjunior Machado 8d80c3a1c1 Introduce CI gating 2021-01-18 00:32:44 +01:00
Jakub Čajka 7065f2ca0a
Update to go1.16beta1
Related: BZ#1913835
2021-01-16 08:52:57 +01:00
Jakub Čajka 3795b402b8
Rebase to go1.15.6
Resolves: BZ#1904238
2020-12-04 13:20:42 +01:00
15 changed files with 533 additions and 230 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

38
.gitignore vendored
View File

@ -95,3 +95,41 @@
/go1.15.3.src.tar.gz
/go1.15.4.src.tar.gz
/go1.15.5.src.tar.gz
/go1.15.6.src.tar.gz
/go1.16beta1.src.tar.gz
/go1.16rc1.src.tar.gz
/go1.16.src.tar.gz
/go1.16.3.src.tar.gz
/go1.16.4.src.tar.gz
/go1.16.5.src.tar.gz
/go1.16.6.src.tar.gz
/go1.17rc2.src.tar.gz
/go1.17.src.tar.gz
/go1.17.3.src.tar.gz
/go1.17.4.src.tar.gz
/go1.17.5.src.tar.gz
/go1.18beta1.src.tar.gz
/go1.18beta2.src.tar.gz
/go1.18rc1.src.tar.gz
/go1.18.src.tar.gz
/go1.18.1.src.tar.gz
/go1.18.2.src.tar.gz
/go1.18.3.src.tar.gz
/go1.18.4.src.tar.gz
/go1.19beta1.src.tar.gz
/go1.19rc1.src.tar.gz
/go1.19rc2.src.tar.gz
/go1.19.src.tar.gz
/go1.19.1.src.tar.gz
/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

View File

@ -1,88 +0,0 @@
From edce31a2904846ae74e3c011f2cf5fddc963459e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20=C4=8Cajka?= <jcajka@redhat.com>
Date: Thu, 22 Mar 2018 12:07:32 +0100
Subject: [PATCH 1/3] Don't use the bundled tzdata at runtime, except for the
internal test suite
---
src/time/internal_test.go | 7 +++++--
src/time/zoneinfo_test.go | 3 ++-
src/time/zoneinfo_unix.go | 2 --
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/time/internal_test.go b/src/time/internal_test.go
index 76d5524124..e81ace5f64 100644
--- a/src/time/internal_test.go
+++ b/src/time/internal_test.go
@@ -4,13 +4,15 @@
package time
+import "runtime"
+
func init() {
// force US/Pacific for time zone tests
ForceUSPacificForTesting()
}
func initTestingZone() {
- z, err := loadLocation("America/Los_Angeles", zoneSources[len(zoneSources)-1:])
+ z, err := loadLocation("America/Los_Angeles", zoneSources)
if err != nil {
panic("cannot load America/Los_Angeles for testing: " + err.Error())
}
@@ -21,8 +23,9 @@ func initTestingZone() {
var OrigZoneSources = zoneSources
func forceZipFileForTesting(zipOnly bool) {
- zoneSources = make([]string, len(OrigZoneSources))
+ zoneSources = make([]string, len(OrigZoneSources)+1)
copy(zoneSources, OrigZoneSources)
+ zoneSources = append(zoneSources, runtime.GOROOT()+"/lib/time/zoneinfo.zip")
if zipOnly {
zoneSources = zoneSources[len(zoneSources)-1:]
}
diff --git a/src/time/zoneinfo_test.go b/src/time/zoneinfo_test.go
index 7a55d4f618..6063ca1195 100644
--- a/src/time/zoneinfo_test.go
+++ b/src/time/zoneinfo_test.go
@@ -8,6 +8,7 @@ import (
"fmt"
"os"
"reflect"
+ "runtime"
"testing"
"time"
)
@@ -128,7 +129,7 @@ func TestLoadLocationFromTZData(t *testing.T) {
t.Fatal(err)
}
- tzinfo, err := time.LoadTzinfo(locationName, time.OrigZoneSources[len(time.OrigZoneSources)-1])
+ tzinfo, err := time.LoadTzinfo(locationName, runtime.GOROOT()+"/lib/time/zoneinfo.zip")
if err != nil {
t.Fatal(err)
}
diff --git a/src/time/zoneinfo_unix.go b/src/time/zoneinfo_unix.go
index 88313aa0ed..d9596115ef 100644
--- a/src/time/zoneinfo_unix.go
+++ b/src/time/zoneinfo_unix.go
@@ -12,7 +12,6 @@
package time
import (
- "runtime"
"syscall"
)
@@ -22,7 +21,6 @@ var zoneSources = []string{
"/usr/share/zoneinfo/",
"/usr/share/lib/zoneinfo/",
"/usr/lib/locale/TZ/",
- runtime.GOROOT() + "/lib/time/zoneinfo.zip",
}
func initLocal() {
--
2.14.3

View File

@ -1,4 +1,4 @@
From 817407fc2d6a861e65086388766f58082d38bc0b Mon Sep 17 00:00:00 2001
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
@ -14,7 +14,7 @@ Change-Id: I08e8e1eb705f898cd8822f8bee0d61ce11d514b5
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/syscall/ztypes_linux_s390x.go b/src/syscall/ztypes_linux_s390x.go
index 63c4a83b19..b5894255df 100644
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 {
@ -37,5 +37,5 @@ index 63c4a83b19..b5894255df 100644
type IfAddrmsg struct {
--
2.14.3
2.26.2

View File

@ -1,36 +1,30 @@
From b38cd2374c2395f5a77802ef8ea3d7ac5b8a86ad Mon Sep 17 00:00:00 2001
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 | 10 +++++-----
src/cmd/go/testdata/script/mod_sumdb_golang.txt | 6 +++---
2 files changed, 8 insertions(+), 8 deletions(-)
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 61dc6bdda6..e8658dc56c 100644
index 57a3c1ff6f..e56c60e591 100644
--- a/src/cmd/go/internal/cfg/cfg.go
+++ b/src/cmd/go/internal/cfg/cfg.go
@@ -245,11 +245,11 @@ var (
GOPPC64 = envOr("GOPPC64", fmt.Sprintf("%s%d", "power", objabi.GOPPC64))
GOWASM = envOr("GOWASM", fmt.Sprint(objabi.GOWASM))
@@ -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")
- GOPRIVATE = Getenv("GOPRIVATE")
- GONOPROXY = envOr("GONOPROXY", GOPRIVATE)
- GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE)
+ GOPROXY = envOr("GOPROXY", "direct")
+ GOSUMDB = envOr("GOSUMDB", "off")
+ GOPRIVATE = Getenv("GOPRIVATE")
+ GONOPROXY = envOr("GONOPROXY", GOPRIVATE)
+ GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE)
GOINSECURE = Getenv("GOINSECURE")
)
+ 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 40a07fc7e9..50436e32d7 100644
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 @@
@ -47,8 +41,8 @@ index 40a07fc7e9..50436e32d7 100644
-stdout '^sum.golang.org$'
+stdout '^off$'
# download direct from github
[!net] skip
# Download direct from github.
--
2.21.0
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

23
bundled-deps.sh Executable file
View File

@ -0,0 +1,23 @@
#! /bin/bash
# Copyright (C) 2021 Jakub Čajka jcajka@redhat.com
#
# 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, write to the Free Software
# 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:")"
done
#TODO replace - with . in version per packaging guidelines
echo -e "$provides" | sort -u

19
gating.yaml Normal file
View File

@ -0,0 +1,19 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

View File

@ -74,11 +74,8 @@
%endif
# Pre build std lib with -race enabled
%ifarch x86_64
%global race 1
%else
# Disabled due to 1.20 new cache usage, see 1.20 upstream release notes
%global race 0
%endif
# Fedora GOROOT
%global goroot /usr/lib/%{name}
@ -105,17 +102,25 @@
%global gohostarch s390x
%endif
%global go_api 1.15
%global go_version 1.15.5
# Comment out go_prerelease and go_patch as needed
%global go_api 1.20
#global go_prerelease rc3
%global go_patch 5
%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 1
Name: golang
Version: 1.15.5
Release: 1%{?dist}
Version: %{go_version}
Release: %{baserelease}%{?dist}
Summary: The Go Programming Language
# source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain
License: BSD and Public Domain
URL: http://golang.org/
Source0: https://storage.googleapis.com/golang/go%{go_version}.src.tar.gz
URL: https://go.dev
Source0: https://go.dev/dl/go%{go_source}.src.tar.gz
# make possible to override default traceback level at build time by setting build tag rpm_crashtraceback
Source1: fedora.go
@ -135,108 +140,26 @@ BuildRequires: pcre-devel, glibc-static, perl-interpreter, procps-ng
Provides: go = %{version}-%{release}
# Bundled/Vendored provides generated by
# go list -f {{.ImportPath}} ./src/vendor/... | sed "s:_$PWD/src/vendor/::g;s:_:.:;s:.*:Provides\: bundled(golang(&)):" && go list -f {{.ImportPath}} ./src/cmd/vendor/... | sed "s:_$PWD/src/cmd/vendor/::g;s:_:.:;s:.*:Provides\: bundled(golang(&)):"
Provides: bundled(golang(golang.org/x/crypto/chacha20))
Provides: bundled(golang(golang.org/x/crypto/chacha20poly1305))
Provides: bundled(golang(golang.org/x/crypto/cryptobyte))
Provides: bundled(golang(golang.org/x/crypto/cryptobyte/asn1))
Provides: bundled(golang(golang.org/x/crypto/curve25519))
Provides: bundled(golang(golang.org/x/crypto/hkdf))
Provides: bundled(golang(golang.org/x/crypto/internal/subtle))
Provides: bundled(golang(golang.org/x/crypto/poly1305))
Provides: bundled(golang(golang.org/x/net/dns/dnsmessage))
Provides: bundled(golang(golang.org/x/net/http/httpguts))
Provides: bundled(golang(golang.org/x/net/http/httpproxy))
Provides: bundled(golang(golang.org/x/net/http2/hpack))
Provides: bundled(golang(golang.org/x/net/idna))
Provides: bundled(golang(golang.org/x/net/nettest))
Provides: bundled(golang(golang.org/x/sys/cpu))
Provides: bundled(golang(golang.org/x/text/secure/bidirule))
Provides: bundled(golang(golang.org/x/text/transform))
Provides: bundled(golang(golang.org/x/text/unicode/bidi))
Provides: bundled(golang(golang.org/x/text/unicode/norm))
Provides: bundled(golang(github.com/google/pprof/driver))
Provides: bundled(golang(github.com/google/pprof/internal/binutils))
Provides: bundled(golang(github.com/google/pprof/internal/driver))
Provides: bundled(golang(github.com/google/pprof/internal/elfexec))
Provides: bundled(golang(github.com/google/pprof/internal/graph))
Provides: bundled(golang(github.com/google/pprof/internal/measurement))
Provides: bundled(golang(github.com/google/pprof/internal/plugin))
Provides: bundled(golang(github.com/google/pprof/internal/report))
Provides: bundled(golang(github.com/google/pprof/internal/symbolizer))
Provides: bundled(golang(github.com/google/pprof/internal/symbolz))
Provides: bundled(golang(github.com/google/pprof/internal/transport))
Provides: bundled(golang(github.com/google/pprof/profile))
Provides: bundled(golang(github.com/google/pprof/third.party/d3))
Provides: bundled(golang(github.com/google/pprof/third.party/d3flamegraph))
Provides: bundled(golang(github.com/google/pprof/third.party/svgpan))
Provides: bundled(golang(github.com/ianlancetaylor/demangle))
Provides: bundled(golang(golang.org/x/arch/arm/armasm))
Provides: bundled(golang(golang.org/x/arch/arm64/arm64asm))
Provides: bundled(golang(golang.org/x/arch/ppc64/ppc64asm))
Provides: bundled(golang(golang.org/x/arch/x86/x86asm))
Provides: bundled(golang(golang.org/x/crypto/ed25519))
Provides: bundled(golang(golang.org/x/crypto/ed25519/internal/edwards25519))
Provides: bundled(golang(golang.org/x/crypto/ssh/terminal))
Provides: bundled(golang(golang.org/x/mod/internal/lazyregexp))
Provides: bundled(golang(golang.org/x/mod/modfile))
Provides: bundled(golang(golang.org/x/mod/module))
Provides: bundled(golang(golang.org/x/mod/semver))
Provides: bundled(golang(golang.org/x/mod/sumdb))
Provides: bundled(golang(golang.org/x/mod/sumdb/dirhash))
Provides: bundled(golang(golang.org/x/mod/sumdb/note))
Provides: bundled(golang(golang.org/x/mod/sumdb/tlog))
Provides: bundled(golang(golang.org/x/mod/zip))
Provides: bundled(golang(golang.org/x/sys/internal/unsafeheader))
Provides: bundled(golang(golang.org/x/sys/unix))
Provides: bundled(golang(golang.org/x/tools/go/analysis))
Provides: bundled(golang(golang.org/x/tools/go/analysis/internal/analysisflags))
Provides: bundled(golang(golang.org/x/tools/go/analysis/internal/facts))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/asmdecl))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/assign))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/atomic))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/bools))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/buildtag))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/cgocall))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/composite))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/copylock))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/ctrlflow))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/errorsas))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/httpresponse))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/ifaceassert))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/inspect))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/internal/analysisutil))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/loopclosure))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/lostcancel))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/nilfunc))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/printf))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/shift))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/stdmethods))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/stringintconv))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/structtag))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/tests))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unmarshal))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unreachable))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unsafeptr))
Provides: bundled(golang(golang.org/x/tools/go/analysis/passes/unusedresult))
Provides: bundled(golang(golang.org/x/tools/go/analysis/unitchecker))
Provides: bundled(golang(golang.org/x/tools/go/ast/astutil))
Provides: bundled(golang(golang.org/x/tools/go/ast/inspector))
Provides: bundled(golang(golang.org/x/tools/go/cfg))
Provides: bundled(golang(golang.org/x/tools/go/types/objectpath))
Provides: bundled(golang(golang.org/x/tools/go/types/typeutil))
Provides: bundled(golang(golang.org/x/tools/internal/analysisinternal))
Provides: bundled(golang(golang.org/x/xerrors))
Provides: bundled(golang(golang.org/x/xerrors/internal))
# Bundled/Vendored provides generated by bundled-deps.sh based on the in tree module data
# - 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.20230214201333.88ed8ca3307d
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-srpm-macros
Patch1: 0001-Don-t-use-the-bundled-tzdata-at-runtime-except-for-t.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
@ -248,6 +171,10 @@ Obsoletes: %{name}-data < 1.1.1-4
Obsoletes: %{name}-vim < 1.4
Obsoletes: emacs-%{name} < 1.4
# We stopped building the golang-race subpackage, so we need to to maintain the
# update path.
Obsoletes: golang-race < 1.20~rc3-2
# These are the only RHEL/Fedora architectures that we compile this package for
ExclusiveArch: %{golang_arches}
@ -414,6 +341,7 @@ GOROOT=$(pwd) PATH=$(pwd)/bin:$PATH go install -race -v -x std
%endif
%install
echo "== 1 =="
rm -rf $RPM_BUILD_ROOT
# remove GC build cache
rm -rf pkg/obj/go-build/*
@ -424,9 +352,9 @@ 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 favicon.ico lib pkg robots.txt src misc test VERSION \
cp -apv api bin doc lib pkg src misc test VERSION \
$RPM_BUILD_ROOT%{goroot}
echo "== 2 =="
# bz1099206
find $RPM_BUILD_ROOT%{goroot}/src -exec touch -r $RPM_BUILD_ROOT%{goroot}/VERSION "{}" \;
# and level out all the built archives
@ -444,6 +372,7 @@ tests_list=$cwd/go-tests.list
rm -f $src_list $pkg_list $docs_list $misc_list $tests_list $shared_list $race_list
touch $src_list $pkg_list $docs_list $misc_list $tests_list $shared_list $race_list
pushd $RPM_BUILD_ROOT%{goroot}
echo "== 3 =="
find src/ -type d -a \( ! -name testdata -a ! -ipath '*/testdata/*' \) -printf '%%%dir %{goroot}/%p\n' >> $src_list
find src/ ! -type d -a \( ! -ipath '*/testdata/*' -a ! -name '*_test.go' \) -printf '%{goroot}/%p\n' >> $src_list
@ -457,6 +386,7 @@ pushd $RPM_BUILD_ROOT%{goroot}
find misc/ ! -type d -printf '%{goroot}/%p\n' >> $misc_list
%if %{shared}
echo "== 4 =="
mkdir -p %{buildroot}/%{_libdir}/
mkdir -p %{buildroot}/%{golibdir}/
for file in $(find . -iname "*.so" ); do
@ -468,11 +398,13 @@ pushd $RPM_BUILD_ROOT%{goroot}
echo "%%{goroot}/$file" >> $shared_list
echo "%%{golibdir}/$(basename $file)" >> $shared_list
done
find pkg/*_dynlink/ -type d -printf '%%%dir %{goroot}/%p\n' >> $shared_list
find pkg/*_dynlink/ ! -type d -printf '%{goroot}/%p\n' >> $shared_list
%endif
echo "== 5 =="
%if %{race}
find pkg/*_race/ -type d -printf '%%%dir %{goroot}/%p\n' >> $race_list
@ -488,7 +420,7 @@ pushd $RPM_BUILD_ROOT%{goroot}
find lib/ -type d -printf '%%%dir %{goroot}/%p\n' >> $tests_list
find lib/ ! -type d -printf '%{goroot}/%p\n' >> $tests_list
popd
echo "== 6 =="
# remove the doc Makefile
rm -rfv $RPM_BUILD_ROOT%{goroot}/doc/Makefile
@ -503,7 +435,7 @@ mkdir -p $RPM_BUILD_ROOT%{gopath}/src/github.com
mkdir -p $RPM_BUILD_ROOT%{gopath}/src/bitbucket.org
mkdir -p $RPM_BUILD_ROOT%{gopath}/src/code.google.com/p
mkdir -p $RPM_BUILD_ROOT%{gopath}/src/golang.org/x
echo "== 7 =="
# make sure these files exist and point to alternatives
rm -f $RPM_BUILD_ROOT%{_bindir}/go
ln -sf /etc/alternatives/go $RPM_BUILD_ROOT%{_bindir}/go
@ -514,6 +446,8 @@ ln -sf /etc/alternatives/gofmt $RPM_BUILD_ROOT%{_bindir}/gofmt
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d
cp -av %{SOURCE100} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d/golang.gdb
echo "== END OF INSTALL =="
%check
export GOROOT=$(pwd -P)
export PATH="$GOROOT"/bin:"$PATH"
@ -529,7 +463,7 @@ export GO_LDFLAGS="-linkmode internal"
export CGO_ENABLED=0
%endif
# workaround for https://github.com/golang/go/issues/39466 until it gests fixed
# Commented until the patch is ready, this work around suggested in the link avobe
# Commented until the patch is ready, this workaround suggested in the link above
# doesn't work properly
#ifarch aarch64
#export CGO_CFLAGS="-mno-outline-atomics"
@ -559,7 +493,6 @@ fi
%files
%license LICENSE PATENTS
%doc AUTHORS CONTRIBUTORS
# VERSION has to be present in the GOROOT, for `go install std` to work
%doc %{goroot}/VERSION
%dir %{goroot}/doc
@ -568,8 +501,6 @@ fi
%dir %{goroot}
%{goroot}/api/
%{goroot}/lib/time/
%{goroot}/favicon.ico
%{goroot}/robots.txt
# ensure directory ownership, so they are cleaned up if empty
%dir %{gopath}
@ -608,6 +539,185 @@ fi
%endif
%changelog
* Thu Jun 08 2023 Alejandro Sáez <asm@redhat.com> - 1.20.5-1
- Update to go1.20.5
* Fri May 05 2023 Alejandro Sáez <asm@redhat.com> - 1.20.4-1
- Update to go1.20.4
- Resolves: rhbz#2184454
* Sat Apr 15 2023 Maxwell G <maxwell@gtmx.me> - 1.20.3-2
- Fix broken golang-race update path
* Tue Apr 04 2023 Alejandro Sáez <asm@redhat.com> - 1.20.3-1
- Update to go1.20.3
* Thu Mar 23 2023 Bradley G Smith <bradley.g.smith@gmail.com> - 1.20.2-1
- Update to go1.20.2
- Resolves: rhbz#2176528, in part
* 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
* Wed Dec 07 2022 Alejandro Sáez <asm@redhat.com> - 1.19.4-1
- Update to go1.19.4
- Resolves: rhbz#2151595
* Tue Nov 8 2022 Amit Shah <amitshah@fedoraproject.org> - 1.19.3-2
- Fix build without binutils-gold
* Sun Nov 06 2022 Mike Rochefort <mroche@redhat.com> - 1.19.3-1
- Update to go1.19.3
- Resolves: rhbz#2139548
* Tue Oct 04 2022 Alejandro Sáez <asm@redhat.com> - 1.19.2-1
- Update to go1.19.2
* Tue Sep 06 2022 Alejandro Sáez <asm@redhat.com> - 1.19.1-1
- Update to go1.19.1
* Tue Aug 02 2022 Alejandro Sáez <asm@redhat.com> - 1.19-1
- Update to go1.19.0
- Remove reference to AUTHORS and CONTRIBUTORS due to https://github.com/golang/go/issues/53961
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.19~rc2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jul 18 2022 Mike Rochefort <mroche@redhat.com> - 1.19~rc2-1
- Update to go1.19rc2
- Remove tzdata patch
- Remove go-srpm-macros runtime requirement
- Resolves: rhbz#2095927
* Wed Jul 13 2022 Alejandro Sáez <asm@redhat.com> - 1.18.4-1
- Update to 1.18.4
* Sun Jun 19 2022 Robert-André Mauchin <zebob.m@gmail.com> - 1.18.3-2
- Rebuilt for CVE-2022-1996, CVE-2022-24675, CVE-2022-28327, CVE-2022-27191,
CVE-2022-29526, CVE-2022-30629
* Thu Jun 02 2022 Alejandro Sáez <asm@redhat.com> - 1.18.3-1
- Update to 1.18.3
- Resolves: rhbz#2092631
* Sun May 15 2022 Mike Rochefort <mroche@redhat.com> - 1.18.2-1
- Update to 1.18.2
- Resolves: rhbz#2075141
* Tue Apr 12 2022 Alejandro Sáez <asm@redhat.com> - 1.18.1-1
- Update to 1.18.1
* Tue Mar 15 2022 Mike Rochefort <mroche@redhat.com> - 1.18-1
- Update to 1.18
- Resolves: rhbz#2064409
* Thu Feb 17 2022 Mike Rochefort <mroche@redhat.com> - 1.18~rc1-1
- Update to 1.18rc1
- Resolves: rhbz#2002859
* Mon Jan 31 2022 Mike Rochefort <mroche@redhat.com> - 1.18~beta2-1
- Update to 1.18beta2
- Remove testshared-size-limit patch (now upstream) 83fc097
- Related: rhbz#2002859
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.18~beta1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Dec 14 2021 Mike Rochefort <mroche@redhat.com> - 1.18beta1-1
- Update to 1.18beta1
- Related: rhbz#2002859
* Tue Dec 14 2021 Alejandro Sáez <asm@redhat.com> - 1.17.5-1
- Update to 1.17.5
- Update bundles
- Related: rhbz#2002859
* Tue Dec 07 2021 Alejandro Sáez <asm@redhat.com> - 1.17.4-1
- Update to 1.17.4
- Related: rhbz#2002859
* Mon Nov 22 2021 Alejandro Sáez <asm@redhat.com> - 1.17.3-1
- Update to 1.17.3
- Related: rhbz#2002859
* Wed Aug 18 2021 Alejandro Sáez <asm@redhat.com> - 1.17-1
- Update to go1.17
- Resolves: rhbz#1957935
* Mon Aug 09 2021 Alejandro Sáez <asm@redhat.com> - 1.17-0.rc2
- Update to go1.17rc2
- Update patches
- Remove patch, already in the source https://go-review.googlesource.com/c/go/+/334410/
* Thu Jul 29 2021 Jakub Čajka <jcajka@redhat.com> - 1.16.6-3
- fix crash in VDSO calls on ppc64le with new kernels
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 14 2021 Mike Rochefort <mroche@fedoraproject.org> - 1.16.6-1
- Update to go1.16.6
- Security fix for CVE-2021-34558
- Resolves: BZ#1983597
* Mon Jun 21 2021 Mike Rochefort <mroche@fedoraproject.org> - 1.16.5-1
- Update to go1.16.5
- Security fix for CVE-2021-33195
- Security fix for CVE-2021-33196
- Security fix for CVE-2021-33197
- Fix OOM with large exponents in Rat.SetString gh#45910
* Thu May 13 2021 Jakub Čajka <jcajka@redhat.com> - 1.16.4-2
- Fix linker issue on ppc64le breaking kube 1.21 build
* Mon May 10 2021 Alejandro Sáez <asm@redhat.com> - 1.16.4-1
- Update to go1.16.4
- Security fix for CVE-2021-31525
- Resolves: rhbz#1958343
* Fri Apr 09 2021 Alejandro Sáez <asm@redhat.com> - 1.16.3-1
- Update to go1.16.3
* Tue Mar 23 2021 Alejandro Sáez <asm@redhat.com> - 1.16-2
- Update to go1.16.2
- Resolves: rhbz#1937435
* Thu Feb 18 2021 Jakub Čajka <jcajka@redhat.com> - 1.16-1
- Update to go1.16
- Improved bundled provides
- Resolves: BZ#1913835
* Sun Jan 31 2021 Neal Gompa <ngompa13@gmail.com> - 1.16-0.rc1.1
- Update to go1.16rc1
- Related: BZ#1913835
- Resolves: BZ#1922617
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.16-0.beta1.1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 15 2021 Jakub Čajka <jcajka@redhat.com> - 1.16-0.beta1.1
- Update to go1.16beta1
- Related: BZ#1913835
* Fri Dec 04 2020 Jakub Čajka <jcajka@redhat.com> - 1.15.6-1
- Rebase to go1.15.6
- Resolves: BZ#1904238
* Fri Nov 13 2020 Jakub Čajka <jcajka@redhat.com> - 1.15.5-1
- Rebase to go1.15.5
- Security fix for CVE-2020-28362, CVE-2020-28367 and CVE-2020-28366

5
plans/ci.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: CI Gating Plan
discover:
how: fmf
execute:
how: tmt

View File

@ -1 +1 @@
SHA512 (go1.15.5.src.tar.gz) = 8e1d71f628d364b949b1e124af8950a563bbe9d9ae73b94c66af6ce029f67c26e2654556c0c118d0bc8566af52a7e9ed736b4667bbef7ccdab2bd338c43e6eb4
SHA512 (go1.20.5.src.tar.gz) = 94cecb366cd9d9722b53e52ea3b0a5715a9e9dc21da0273dd3db9354557f71b9501b018125ef073dacc2e59125335f436cea1151cd8df0d60e2ad513f841905c

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