From 0b3722bb339ca256e480d09b4c304a1421630e18 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 21 May 2014 17:30:02 -0400 Subject: [PATCH 01/23] update to go1.3beta2 --- golang-1.2-remove-ECC-p224.patch | 86 ++++++++++--------- golang-1.2-verbose-build.patch | 28 +++---- golang-1.2.1-disable_testsetgid.patch | 9 -- golang-1.2.1-i686-cgo-test-failure.patch | 13 --- golang.spec | 101 +++++------------------ 5 files changed, 77 insertions(+), 160 deletions(-) delete mode 100644 golang-1.2.1-disable_testsetgid.patch delete mode 100644 golang-1.2.1-i686-cgo-test-failure.patch diff --git a/golang-1.2-remove-ECC-p224.patch b/golang-1.2-remove-ECC-p224.patch index d31b400..1b9e021 100644 --- a/golang-1.2-remove-ECC-p224.patch +++ b/golang-1.2-remove-ECC-p224.patch @@ -1,7 +1,8 @@ -diff -r 87dea3f5ebe7 api/go1.txt ---- a/api/go1.txt Fri Nov 29 08:32:31 2013 +1100 -+++ b/api/go1.txt Fri Dec 06 13:31:29 2013 -0500 -@@ -412,7 +412,6 @@ +Index: go/api/go1.txt +=================================================================== +--- go.orig/api/go1.txt ++++ go/api/go1.txt +@@ -412,7 +412,6 @@ pkg crypto/ecdsa, type PublicKey struct, pkg crypto/ecdsa, type PublicKey struct, embedded elliptic.Curve pkg crypto/elliptic, func GenerateKey(Curve, io.Reader) ([]uint8, *big.Int, *big.Int, error) pkg crypto/elliptic, func Marshal(Curve, *big.Int, *big.Int) []uint8 @@ -9,10 +10,11 @@ diff -r 87dea3f5ebe7 api/go1.txt pkg crypto/elliptic, func P256() Curve pkg crypto/elliptic, func P384() Curve pkg crypto/elliptic, func P521() Curve -diff -r 87dea3f5ebe7 src/pkg/crypto/ecdsa/ecdsa_test.go ---- a/src/pkg/crypto/ecdsa/ecdsa_test.go Fri Nov 29 08:32:31 2013 +1100 -+++ b/src/pkg/crypto/ecdsa/ecdsa_test.go Fri Dec 06 13:31:29 2013 -0500 -@@ -33,7 +33,6 @@ +Index: go/src/pkg/crypto/ecdsa/ecdsa_test.go +=================================================================== +--- go.orig/src/pkg/crypto/ecdsa/ecdsa_test.go ++++ go/src/pkg/crypto/ecdsa/ecdsa_test.go +@@ -33,7 +33,6 @@ func testKeyGeneration(t *testing.T, c e } func TestKeyGeneration(t *testing.T) { @@ -20,7 +22,7 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/ecdsa/ecdsa_test.go if testing.Short() { return } -@@ -63,7 +62,6 @@ +@@ -63,7 +62,6 @@ func testSignAndVerify(t *testing.T, c e } func TestSignAndVerify(t *testing.T) { @@ -28,7 +30,7 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/ecdsa/ecdsa_test.go if testing.Short() { return } -@@ -129,8 +127,6 @@ +@@ -129,8 +127,6 @@ func TestVectors(t *testing.T) { parts := strings.SplitN(line, ",", 2) switch parts[0] { @@ -37,9 +39,10 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/ecdsa/ecdsa_test.go case "P-256": pub.Curve = elliptic.P256() case "P-384": -diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/bottombits.go ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/src/pkg/crypto/elliptic/bottombits.go Fri Dec 06 13:31:29 2013 -0500 +Index: go/src/pkg/crypto/elliptic/bottombits.go +=================================================================== +--- /dev/null ++++ go/src/pkg/crypto/elliptic/bottombits.go @@ -0,0 +1,14 @@ + +// Copyright 2012 The Go Authors. All rights reserved. @@ -55,10 +58,11 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/bottombits.go +const two31m3 = 1<<31 - 1<<3 +const two31m15m3 = 1<<31 - 1<<15 - 1<<3 + -diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/elliptic.go ---- a/src/pkg/crypto/elliptic/elliptic.go Fri Nov 29 08:32:31 2013 +1100 -+++ b/src/pkg/crypto/elliptic/elliptic.go Fri Dec 06 13:31:29 2013 -0500 -@@ -326,7 +326,6 @@ +Index: go/src/pkg/crypto/elliptic/elliptic.go +=================================================================== +--- go.orig/src/pkg/crypto/elliptic/elliptic.go ++++ go/src/pkg/crypto/elliptic/elliptic.go +@@ -326,7 +326,6 @@ var p384 *CurveParams var p521 *CurveParams func initAll() { @@ -66,25 +70,27 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/elliptic.go initP256() initP384() initP521() -diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/elliptic_test.go ---- a/src/pkg/crypto/elliptic/elliptic_test.go Fri Nov 29 08:32:31 2013 +1100 -+++ b/src/pkg/crypto/elliptic/elliptic_test.go Fri Dec 06 13:31:29 2013 -0500 +Index: go/src/pkg/crypto/elliptic/elliptic_test.go +=================================================================== +--- go.orig/src/pkg/crypto/elliptic/elliptic_test.go ++++ go/src/pkg/crypto/elliptic/elliptic_test.go @@ -1,3 +1,5 @@ +// +build ignore + // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/p224.go ---- a/src/pkg/crypto/elliptic/p224.go Fri Nov 29 08:32:31 2013 +1100 -+++ b/src/pkg/crypto/elliptic/p224.go Fri Dec 06 13:31:29 2013 -0500 +Index: go/src/pkg/crypto/elliptic/p224.go +=================================================================== +--- go.orig/src/pkg/crypto/elliptic/p224.go ++++ go/src/pkg/crypto/elliptic/p224.go @@ -1,3 +1,5 @@ +// +build ignore + // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -@@ -183,10 +185,6 @@ +@@ -183,10 +185,6 @@ func p224Add(out, a, b *p224FieldElement } } @@ -95,7 +101,7 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/p224.go // p224ZeroModP31 is 0 mod p where bit 31 is set in all limbs so that we can // subtract smaller amounts without underflow. See the section "Subtraction" in // [1] for reasoning. -@@ -215,9 +213,6 @@ +@@ -215,9 +213,6 @@ const two63m35m19 = 1<<63 - 1<<35 - 1<<1 // "Subtraction" in [1] for why. var p224ZeroModP63 = [8]uint64{two63p35, two63m35, two63m35, two63m35, two63m35m19, two63m35, two63m35, two63m35} @@ -105,19 +111,21 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/p224.go // p224Mul computes *out = a*b // // a[i] < 2**29, b[i] < 2**30 (or vice versa) -diff -r 87dea3f5ebe7 src/pkg/crypto/elliptic/p224_test.go ---- a/src/pkg/crypto/elliptic/p224_test.go Fri Nov 29 08:32:31 2013 +1100 -+++ b/src/pkg/crypto/elliptic/p224_test.go Fri Dec 06 13:31:29 2013 -0500 +Index: go/src/pkg/crypto/elliptic/p224_test.go +=================================================================== +--- go.orig/src/pkg/crypto/elliptic/p224_test.go ++++ go/src/pkg/crypto/elliptic/p224_test.go @@ -1,3 +1,5 @@ +// +build ignore + // Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -diff -r 87dea3f5ebe7 src/pkg/crypto/x509/x509.go ---- a/src/pkg/crypto/x509/x509.go Fri Nov 29 08:32:31 2013 +1100 -+++ b/src/pkg/crypto/x509/x509.go Fri Dec 06 13:31:29 2013 -0500 -@@ -305,9 +305,6 @@ +Index: go/src/pkg/crypto/x509/x509.go +=================================================================== +--- go.orig/src/pkg/crypto/x509/x509.go ++++ go/src/pkg/crypto/x509/x509.go +@@ -306,9 +306,6 @@ func getPublicKeyAlgorithmFromOID(oid as // RFC 5480, 2.1.1.1. Named Curve // @@ -127,7 +135,7 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/x509/x509.go // secp256r1 OBJECT IDENTIFIER ::= { // iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3) // prime(1) 7 } -@@ -320,7 +317,6 @@ +@@ -321,7 +318,6 @@ func getPublicKeyAlgorithmFromOID(oid as // // NB: secp256r1 is equivalent to prime256v1 var ( @@ -135,7 +143,7 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/x509/x509.go oidNamedCurveP256 = asn1.ObjectIdentifier{1, 2, 840, 10045, 3, 1, 7} oidNamedCurveP384 = asn1.ObjectIdentifier{1, 3, 132, 0, 34} oidNamedCurveP521 = asn1.ObjectIdentifier{1, 3, 132, 0, 35} -@@ -328,8 +324,6 @@ +@@ -329,8 +325,6 @@ var ( func namedCurveFromOID(oid asn1.ObjectIdentifier) elliptic.Curve { switch { @@ -144,7 +152,7 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/x509/x509.go case oid.Equal(oidNamedCurveP256): return elliptic.P256() case oid.Equal(oidNamedCurveP384): -@@ -342,8 +336,6 @@ +@@ -343,8 +337,6 @@ func namedCurveFromOID(oid asn1.ObjectId func oidFromNamedCurve(curve elliptic.Curve) (asn1.ObjectIdentifier, bool) { switch curve { @@ -153,12 +161,12 @@ diff -r 87dea3f5ebe7 src/pkg/crypto/x509/x509.go case elliptic.P256(): return oidNamedCurveP256, true case elliptic.P384(): -@@ -1373,7 +1365,7 @@ - hashFunc = crypto.SHA1 - case *ecdsa.PrivateKey: +@@ -1371,7 +1363,7 @@ func signingParamsForPrivateKey(priv int + pubType = ECDSA + switch priv.Curve { - case elliptic.P224(), elliptic.P256(): + case elliptic.P256(): hashFunc = crypto.SHA256 - signatureAlgorithm.Algorithm = oidSignatureECDSAWithSHA256 + sigAlgo.Algorithm = oidSignatureECDSAWithSHA256 case elliptic.P384(): diff --git a/golang-1.2-verbose-build.patch b/golang-1.2-verbose-build.patch index d6e2da4..1698d82 100644 --- a/golang-1.2-verbose-build.patch +++ b/golang-1.2-verbose-build.patch @@ -1,27 +1,19 @@ -diff -r 7326da92ff4d src/make.bash ---- a/src/make.bash Mon Dec 02 09:06:41 2013 +1100 -+++ b/src/make.bash Tue Dec 03 15:29:09 2013 -0500 -@@ -145,7 +145,7 @@ - if [ "$1" = "--no-clean" ]; then - buildall="" - fi --./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap -+./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -vv # builds go_bootstrap - # Delay move of dist tool to now, because bootstrap may clear tool directory. - mv cmd/dist/dist "$GOTOOLDIR"/dist - "$GOTOOLDIR"/go_bootstrap clean -i std -@@ -154,12 +154,12 @@ - if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then - echo "# Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH." - GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \ +Index: go/src/make.bash +=================================================================== +--- go.orig/src/make.bash ++++ go/src/make.bash +@@ -161,12 +161,12 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOH + # CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however, + # use the host compiler, CC, from `cmd/dist/dist env` instead. + CC=$CC GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \ - "$GOTOOLDIR"/go_bootstrap install -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std + "$GOTOOLDIR"/go_bootstrap install -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std echo fi echo "# Building packages and commands for $GOOS/$GOARCH." --"$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std -+"$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std +-CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std ++CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std echo rm -f "$GOTOOLDIR"/go_bootstrap diff --git a/golang-1.2.1-disable_testsetgid.patch b/golang-1.2.1-disable_testsetgid.patch deleted file mode 100644 index 4b509eb..0000000 --- a/golang-1.2.1-disable_testsetgid.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -r 0ddbdc3c7ce2 misc/cgo/test/cgo_linux_test.go ---- a/misc/cgo/test/cgo_linux_test.go Mon Mar 03 11:53:08 2014 +1100 -+++ b/misc/cgo/test/cgo_linux_test.go Fri Apr 11 16:01:17 2014 -0400 -@@ -6,4 +6,4 @@ - - import "testing" - --func TestSetgid(t *testing.T) { testSetgid(t) } -+func nopeTestSetgid(t *testing.T) { testSetgid(t) } diff --git a/golang-1.2.1-i686-cgo-test-failure.patch b/golang-1.2.1-i686-cgo-test-failure.patch deleted file mode 100644 index 3ec543c..0000000 --- a/golang-1.2.1-i686-cgo-test-failure.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: go/src/run.bash -=================================================================== ---- go.orig/src/run.bash -+++ go/src/run.bash -@@ -105,7 +105,7 @@ go run $GOROOT/test/run.go - . || exit 1 - (xcd ../misc/cgo/test - go test -ldflags '-linkmode=auto' || exit 1 - # linkmode=internal fails on dragonfly since errno is a TLS relocation. --[ "$GOHOSTOS" == dragonfly ] || go test -ldflags '-linkmode=internal' || exit 1 -+#[ "$GOHOSTOS" == dragonfly ] || go test -ldflags '-linkmode=internal' || exit 1 - case "$GOHOSTOS-$GOARCH" in - openbsd-386 | openbsd-amd64) - # test linkmode=external, but __thread not supported, so skip testtls. diff --git a/golang.spec b/golang.spec index 4c3a7b2..45db2b1 100644 --- a/golang.spec +++ b/golang.spec @@ -38,13 +38,13 @@ %endif Name: golang -Version: 1.2.2 -Release: 7%{?dist} +Version: 1.3beta2 +Release: 1%{?dist} Summary: The Go Programming Language License: BSD URL: http://golang.org/ -Source0: https://go.googlecode.com/files/go%{version}.src.tar.gz +Source0: https://storage.googleapis.com/golang/go%{version}.src.tar.gz # this command moved places %if 0%{?fedora} >= 21 @@ -63,10 +63,6 @@ Requires: golang-bin Requires: golang-src BuildRequires: emacs -# xemacs on fedora only -%if 0%{?fedora} -BuildRequires: xemacs xemacs-packages-extra -%endif Patch0: golang-1.2-verbose-build.patch @@ -77,20 +73,6 @@ Patch1: golang-1.2-remove-ECC-p224.patch # http://code.google.com/p/go/issues/detail?id=6522 Patch2: ./golang-1.2-skipCpuProfileTest.patch -# Pull in new archive/tar upstream patch to support xattrs for -# docker-0.8.1 -# https://code.google.com/p/go/source/detail?r=a15f344a9efa -Patch3: golang-1.2-archive_tar-xattr.patch - -# skip test that causes a SIGABRT on fc21 (bz1086900) -# until this test/issue is fixed -# https://bugzilla.redhat.com/show_bug.cgi?id=1086900 -Patch5: golang-1.2.1-disable_testsetgid.patch - -# skip this test, which fails in i686 on fc21 inside mock/chroot (bz1087621) -# https://bugzilla.redhat.com/show_bug.cgi?id=1087621 -Patch6: golang-1.2.1-i686-cgo-test-failure.patch - # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -104,10 +86,6 @@ Source100: golang-gdbinit Source101: golang-prelink.conf Source102: macros.golang -# Patch4 - pull in new archive/tar upstream patch, this file is part -# of the upstream merge and is used for test cases. -Source400: golang-19087:a15f344a9efa-xattrs.tar - %description %{summary}. @@ -144,18 +122,6 @@ BuildArch: noarch %{summary}. -# xemacs on fedora only -%if 0%{?fedora} -%package -n xemacs-%{name} -Summary: XEmacs add-on package for Go -Requires: xemacs(bin) >= %{_xemacs_version} -Requires: xemacs-packages-extra -BuildArch: noarch - -%description -n xemacs-%{name} -%{summary}. -%endif - ## # the source tree %package src @@ -377,8 +343,6 @@ end %prep %setup -q -n go -cp %SOURCE400 src/pkg/archive/tar/testdata/xattrs.tar - %if 0%{?fedora} >= 21 %patch210 -p0 %patch211 -p0 @@ -393,16 +357,6 @@ cp %SOURCE400 src/pkg/archive/tar/testdata/xattrs.tar # skip flaky test %patch2 -p1 -# new archive/tar implementation from upstream -# TODO: remove this when updated to go1.3 -%patch3 -p1 - -# SIGABRT bz1086900 -%patch5 -p1 - -# cgo/test bz1087621 -%patch6 -p1 - # create a [dirty] gcc wrapper to allow us to build with our own flags # (dirty because it is spoofing 'gcc' since CC value is stored in the go tool) # TODO: remove this and just set CFLAGS/LDFLAGS once upstream supports it @@ -441,14 +395,9 @@ pushd src done popd -# compile for emacs and xemacs +# compile for emacs cd misc mv emacs/go-mode-load.el emacs/%{name}-init.el -# xemacs on fedora only -%if 0%{?fedora} -cp -av emacs xemacs -%{_xemacs_bytecompile} xemacs/go-mode.el -%endif %{_emacs_bytecompile} emacs/go-mode.el cd .. @@ -457,9 +406,17 @@ cd .. export GOROOT=$(pwd -P) export PATH="$PATH":"$GOROOT"/bin cd src + +# skip using CGO for test. causes a SIGABRT on fc21 (bz1086900) +# until this test/issue is fixed +# https://bugzilla.redhat.com/show_bug.cgi?id=1086900 +# CGO for test, which fails in i686 on fc21 inside mock/chroot (bz1087621) +# https://bugzilla.redhat.com/show_bug.cgi?id=1087621 + # not using our 'gcc' since the CFLAGS fails crash_cgo_test.go due to unused variables # https://code.google.com/p/go/issues/detail?id=6883 -./run.bash --no-rebuild +CGO_ENABLED=0 ./run.bash --no-rebuild + cd .. @@ -525,15 +482,6 @@ mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir} cp -av misc/emacs/go-mode.* $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name} cp -av misc/emacs/%{name}-init.el $RPM_BUILD_ROOT%{_emacs_sitestartdir} -# xemacs on fedora only -%if 0%{?fedora} -# misc/xemacs -mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/%{name} -mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitestartdir} -cp -av misc/xemacs/go-mode.* $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/%{name} -cp -av misc/xemacs/%{name}-init.el $RPM_BUILD_ROOT%{_xemacs_sitestartdir} -%endif - # misc/vim mkdir -p $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles cp -av misc/vim/* $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles @@ -651,6 +599,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=386 go install std %post pkg-openbsd-amd64 GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std +#%post pkg-openbsd-arm +#GOROOT=%{goroot} GOOS=openbsd GOARCH=arm go install std + %files %doc AUTHORS CONTRIBUTORS LICENSE PATENTS VERSION @@ -698,23 +649,13 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{_emacs_sitestartdir}/*.el -# xemacs on fedora only -%if 0%{?fedora} -%files -n xemacs-%{name} -%doc AUTHORS CONTRIBUTORS LICENSE PATENTS -%{_xemacs_sitelispdir}/%{name} -%{_xemacs_sitestartdir}/*.el -%endif - %files src %{goroot}/src/ # files that are generated based on compile-time ARCH will go in that arch's pkg-bin-* %ifarch %{ix86} # this is wacky that now these files are generated in a different arch -%exclude %{goroot}/src/cmd/8l/enam.c %exclude %{goroot}/src/pkg/runtime/zgoarch_386.go -%exclude %{goroot}/src/cmd/6l/enam.c %exclude %{goroot}/src/pkg/runtime/zgoarch_amd64.go %exclude %{goroot}/src/pkg/runtime/zasm_linux_386.h @@ -731,7 +672,6 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %endif %ifarch x86_64 -%exclude %{goroot}/src/cmd/6l/enam.c %exclude %{goroot}/src/pkg/runtime/zgoarch_amd64.go %exclude %{goroot}/src/pkg/runtime/zasm_linux_amd64.h @@ -748,9 +688,7 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %endif %ifarch %{arm} -%exclude %{goroot}/src/cmd/5l/enam.c %exclude %{goroot}/src/pkg/runtime/zgoarch_arm.go -%exclude %{goroot}/src/cmd/6l/enam.c %exclude %{goroot}/src/pkg/runtime/zgoarch_amd64.go %exclude %{goroot}/src/pkg/runtime/zasm_linux_arm.h @@ -794,7 +732,6 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/pkg/tool/linux_386/pprof # arch dependent generated files, used by cgo -%{goroot}/src/cmd/8l/enam.c %{goroot}/src/pkg/runtime/zasm_linux_386.h %{goroot}/src/pkg/runtime/zgoarch_386.go %{goroot}/src/pkg/runtime/zmalloc_linux_386.c @@ -831,7 +768,6 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/pkg/tool/linux_amd64/pprof # arch dependent generated files, used by cgo -%{goroot}/src/cmd/6l/enam.c %{goroot}/src/pkg/runtime/zasm_linux_amd64.h %{goroot}/src/pkg/runtime/zgoarch_amd64.go %{goroot}/src/pkg/runtime/zmalloc_linux_amd64.c @@ -872,7 +808,6 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/pkg/tool/linux_arm/pprof # arch dependent generated files, used by cgo -%{goroot}/src/cmd/5l/enam.c %{goroot}/src/pkg/runtime/zasm_linux_arm.h %{goroot}/src/pkg/runtime/zgoarch_arm.go %{goroot}/src/pkg/runtime/zmalloc_linux_arm.c @@ -978,6 +913,10 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Wed May 21 2014 Vincent Batts 1.3beta2-1 +- update to go1.3beta2 +- no longer provides go-mode for xemacs (emacs only) + * Wed May 21 2014 Vincent Batts 1.2.2-7 - bz1099206 ghost files are not what is needed From 2e3bac640ab0c631b525e1d8ad5084b389d1efca Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 21 May 2014 17:31:06 -0400 Subject: [PATCH 02/23] new source --- .gitignore | 1 + sources | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 8f0d407..9856129 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /golang-19087:a15f344a9efa-xattrs.tar /go1.2.1.src.tar.gz /go1.2.2.src.tar.gz +/go1.3beta2.src.tar.gz diff --git a/sources b/sources index d6694f6..542a715 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar 7917152cb24efb9a13c7881ed280af9a go1.2.2.src.tar.gz +14616a2258d1a4029a6fd10bbbd9b564 go1.3beta2.src.tar.gz From f3f956d5ae6838e345a99719777c64d68f0d5181 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 3 Jun 2014 10:52:54 -0400 Subject: [PATCH 03/23] update to go1.3rc1 --- .gitignore | 1 + golang.spec | 7 +++++-- sources | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 9856129..626efa9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /go1.2.1.src.tar.gz /go1.2.2.src.tar.gz /go1.3beta2.src.tar.gz +/go1.3rc1.src.tar.gz diff --git a/golang.spec b/golang.spec index 45db2b1..5684833 100644 --- a/golang.spec +++ b/golang.spec @@ -38,13 +38,13 @@ %endif Name: golang -Version: 1.3beta2 +Version: 1.3rc1 Release: 1%{?dist} Summary: The Go Programming Language License: BSD URL: http://golang.org/ -Source0: https://storage.googleapis.com/golang/go%{version}.src.tar.gz +Source0: http://golang.org/dl/go%{version}.src.tar.gz # this command moved places %if 0%{?fedora} >= 21 @@ -913,6 +913,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Tue Jun 03 2014 Vincent Batts 1.3rc1-1 +- update to go1.3rc1 + * Wed May 21 2014 Vincent Batts 1.3beta2-1 - update to go1.3beta2 - no longer provides go-mode for xemacs (emacs only) diff --git a/sources b/sources index 542a715..b9bd8bc 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar 7917152cb24efb9a13c7881ed280af9a go1.2.2.src.tar.gz 14616a2258d1a4029a6fd10bbbd9b564 go1.3beta2.src.tar.gz +6f0523a73ff66bb52ae75b7f42fc8a1e go1.3rc1.src.tar.gz From dbf266139168ec249f65234b608113e6758481e6 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 3 Jun 2014 11:20:16 -0400 Subject: [PATCH 04/23] updating BSD_SOURCE patch --- golang-1.2-BSD-SVID-SOURCE.patch | 23 +++++------------------ sources | 2 -- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/golang-1.2-BSD-SVID-SOURCE.patch b/golang-1.2-BSD-SVID-SOURCE.patch index d65e04a..5e638d6 100644 --- a/golang-1.2-BSD-SVID-SOURCE.patch +++ b/golang-1.2-BSD-SVID-SOURCE.patch @@ -1,6 +1,8 @@ ---- include/u.h.orig 2014-02-20 13:51:53.456000000 -0600 -+++ include/u.h 2014-02-20 13:55:51.072000000 -0600 -@@ -38,9 +38,12 @@ +Index: include/u.h +=================================================================== +--- include/u.h.orig ++++ include/u.h +@@ -38,9 +38,12 @@ extern "C" { # define __MAKECONTEXT_V2_SOURCE 1 # endif #endif @@ -14,18 +16,3 @@ #if !defined(__APPLE__) && !defined(__OpenBSD__) # define _XOPEN_SOURCE 1000 # define _XOPEN_SOURCE_EXTENDED 1 ---- src/lib9/utf/utfecpy.c.orig 2014-02-20 14:12:27.735000000 -0600 -+++ src/lib9/utf/utfecpy.c 2014-02-20 14:13:09.242000000 -0600 -@@ -11,7 +11,11 @@ - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. - */ --#define _BSD_SOURCE 1 -+#if defined __linux__ || defined __GNU__ || defined __GLIBC__ -+#define _DEFAULT_SOURCE 1 -+#else -+ #define _BSD_SOURCE 1 -+#endif - #include - #include "utf.h" - #include "utfdef.h" diff --git a/sources b/sources index b9bd8bc..d352984 100644 --- a/sources +++ b/sources @@ -1,4 +1,2 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar -7917152cb24efb9a13c7881ed280af9a go1.2.2.src.tar.gz -14616a2258d1a4029a6fd10bbbd9b564 go1.3beta2.src.tar.gz 6f0523a73ff66bb52ae75b7f42fc8a1e go1.3rc1.src.tar.gz From ffa74e040a91247c8dfad3fd98d26c2cff451dc0 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 3 Jun 2014 15:37:32 -0400 Subject: [PATCH 05/23] new arch file shuffling --- golang.spec | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/golang.spec b/golang.spec index 5684833..bed36ca 100644 --- a/golang.spec +++ b/golang.spec @@ -51,7 +51,7 @@ Source0: http://golang.org/dl/go%{version}.src.tar.gz BuildRequires: /usr/bin/hostname Patch210: golang-f21-hostname.patch -# Patch211 - F21+ has glibc 2.19.90 (2.20 devel)+ which deprecates +# Patch211 - F21+ has glibc 2.19.90 (2.20 devel)+ which deprecates # _BSD_SOURCE and _SVID_SOURCE Patch211: golang-1.2-BSD-SVID-SOURCE.patch %else @@ -669,6 +669,16 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %exclude %{goroot}/src/pkg/runtime/zstring_linux_386.c %exclude %{goroot}/src/pkg/runtime/zsys_linux_386.s %exclude %{goroot}/src/pkg/runtime/ztime_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zalg_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zchan_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zcomplex_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zcpuprof_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zhashmap_linux_386.c +%exclude %{goroot}/src/pkg/runtime/ziface_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zlfstack_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zrdebug_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zslice_linux_386.c +%exclude %{goroot}/src/pkg/runtime/zsymtab_linux_386.c %endif %ifarch x86_64 @@ -685,6 +695,16 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %exclude %{goroot}/src/pkg/runtime/zstring_linux_amd64.c %exclude %{goroot}/src/pkg/runtime/zsys_linux_amd64.s %exclude %{goroot}/src/pkg/runtime/ztime_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zalg_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zchan_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zcomplex_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zcpuprof_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zhashmap_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/ziface_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zlfstack_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zrdebug_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zslice_linux_amd64.c +%exclude %{goroot}/src/pkg/runtime/zsymtab_linux_amd64.c %endif %ifarch %{arm} @@ -703,6 +723,16 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %exclude %{goroot}/src/pkg/runtime/zstring_linux_arm.c %exclude %{goroot}/src/pkg/runtime/zsys_linux_arm.s %exclude %{goroot}/src/pkg/runtime/ztime_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zalg_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zchan_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zcomplex_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zcpuprof_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zhashmap_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/ziface_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zlfstack_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zrdebug_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zslice_linux_arm.c +%exclude %{goroot}/src/pkg/runtime/zsymtab_linux_arm.c %endif @@ -744,6 +774,16 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/src/pkg/runtime/zstring_linux_386.c %{goroot}/src/pkg/runtime/zsys_linux_386.s %{goroot}/src/pkg/runtime/ztime_linux_386.c +%{goroot}/src/pkg/runtime/zalg_linux_386.c +%{goroot}/src/pkg/runtime/zchan_linux_386.c +%{goroot}/src/pkg/runtime/zcomplex_linux_386.c +%{goroot}/src/pkg/runtime/zcpuprof_linux_386.c +%{goroot}/src/pkg/runtime/zhashmap_linux_386.c +%{goroot}/src/pkg/runtime/ziface_linux_386.c +%{goroot}/src/pkg/runtime/zlfstack_linux_386.c +%{goroot}/src/pkg/runtime/zrdebug_linux_386.c +%{goroot}/src/pkg/runtime/zslice_linux_386.c +%{goroot}/src/pkg/runtime/zsymtab_linux_386.c %endif %ifarch x86_64 @@ -780,6 +820,16 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/src/pkg/runtime/zstring_linux_amd64.c %{goroot}/src/pkg/runtime/zsys_linux_amd64.s %{goroot}/src/pkg/runtime/ztime_linux_amd64.c +%{goroot}/src/pkg/runtime/zalg_linux_amd64.c +%{goroot}/src/pkg/runtime/zchan_linux_amd64.c +%{goroot}/src/pkg/runtime/zcomplex_linux_amd64.c +%{goroot}/src/pkg/runtime/zcpuprof_linux_amd64.c +%{goroot}/src/pkg/runtime/zhashmap_linux_amd64.c +%{goroot}/src/pkg/runtime/ziface_linux_amd64.c +%{goroot}/src/pkg/runtime/zlfstack_linux_amd64.c +%{goroot}/src/pkg/runtime/zrdebug_linux_amd64.c +%{goroot}/src/pkg/runtime/zslice_linux_amd64.c +%{goroot}/src/pkg/runtime/zsymtab_linux_amd64.c %endif %ifarch %{arm} @@ -821,6 +871,16 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/src/pkg/runtime/zstring_linux_arm.c %{goroot}/src/pkg/runtime/zsys_linux_arm.s %{goroot}/src/pkg/runtime/ztime_linux_arm.c +%{goroot}/src/pkg/runtime/zalg_linux_arm.c +%{goroot}/src/pkg/runtime/zchan_linux_arm.c +%{goroot}/src/pkg/runtime/zcomplex_linux_arm.c +%{goroot}/src/pkg/runtime/zcpuprof_linux_arm.c +%{goroot}/src/pkg/runtime/zhashmap_linux_arm.c +%{goroot}/src/pkg/runtime/ziface_linux_arm.c +%{goroot}/src/pkg/runtime/zlfstack_linux_arm.c +%{goroot}/src/pkg/runtime/zrdebug_linux_arm.c +%{goroot}/src/pkg/runtime/zslice_linux_arm.c +%{goroot}/src/pkg/runtime/zsymtab_linux_arm.c %endif %files pkg-linux-386 @@ -915,6 +975,7 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog * Tue Jun 03 2014 Vincent Batts 1.3rc1-1 - update to go1.3rc1 +- new arch file shuffling * Wed May 21 2014 Vincent Batts 1.3beta2-1 - update to go1.3beta2 From 472df199bf6d63e684e173747d4a284b22e1af7c Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 7 Jun 2014 13:00:36 -0500 Subject: [PATCH 06/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- golang.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/golang.spec b/golang.spec index bed36ca..4e171eb 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3rc1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: The Go Programming Language License: BSD @@ -973,6 +973,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 1.3rc1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Tue Jun 03 2014 Vincent Batts 1.3rc1-1 - update to go1.3rc1 - new arch file shuffling From ae7853072a68d22e4f946912c280a32348f46862 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 16 Jun 2014 14:16:12 -0400 Subject: [PATCH 07/23] updating to go1.3rc2 --- .gitignore | 1 + golang.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 626efa9..53bb435 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /go1.2.2.src.tar.gz /go1.3beta2.src.tar.gz /go1.3rc1.src.tar.gz +/go1.3rc2.src.tar.gz diff --git a/golang.spec b/golang.spec index 4e171eb..5f697d5 100644 --- a/golang.spec +++ b/golang.spec @@ -38,8 +38,8 @@ %endif Name: golang -Version: 1.3rc1 -Release: 2%{?dist} +Version: 1.3rc2 +Release: 1%{?dist} Summary: The Go Programming Language License: BSD @@ -973,6 +973,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Fri Jun 13 2014 Vincent Batts - 1.3rc2-1 +- update to go1.3rc2 + * Sat Jun 07 2014 Fedora Release Engineering - 1.3rc1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild diff --git a/sources b/sources index d352984..3fcfb4d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar -6f0523a73ff66bb52ae75b7f42fc8a1e go1.3rc1.src.tar.gz +9d0efed0c783c4535b2b93cd23693e28 go1.3rc2.src.tar.gz From 207296f435ebe419bd49892b9374d96a609a1a3d Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Thu, 19 Jun 2014 11:09:27 -0400 Subject: [PATCH 08/23] update to go1.3 --- .gitignore | 1 + golang.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 53bb435..bb34c32 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /go1.3beta2.src.tar.gz /go1.3rc1.src.tar.gz /go1.3rc2.src.tar.gz +/go1.3.src.tar.gz diff --git a/golang.spec b/golang.spec index 5f697d5..3bd1740 100644 --- a/golang.spec +++ b/golang.spec @@ -38,7 +38,7 @@ %endif Name: golang -Version: 1.3rc2 +Version: 1.3 Release: 1%{?dist} Summary: The Go Programming Language @@ -973,6 +973,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Thu Jun 19 2014 Vincent Batts - 1.3-1 +- update to go1.3 + * Fri Jun 13 2014 Vincent Batts - 1.3rc2-1 - update to go1.3rc2 diff --git a/sources b/sources index 3fcfb4d..a687b67 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar -9d0efed0c783c4535b2b93cd23693e28 go1.3rc2.src.tar.gz +4b66d7249554181c314f139ea78920b1 go1.3.src.tar.gz From 408684902613b408364682c29ac0199b4daef0fa Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 7 Jul 2014 16:11:04 -0400 Subject: [PATCH 09/23] archive/tar patches for performance --- go1.3-tar_reuse_buffer_readHeader.patch | 64 ++++++++++++++++++++++++ go1.3-tar_reuse_buffer_writeHeader.patch | 56 +++++++++++++++++++++ golang.spec | 14 +++++- 3 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 go1.3-tar_reuse_buffer_readHeader.patch create mode 100644 go1.3-tar_reuse_buffer_writeHeader.patch diff --git a/go1.3-tar_reuse_buffer_readHeader.patch b/go1.3-tar_reuse_buffer_readHeader.patch new file mode 100644 index 0000000..1c6693c --- /dev/null +++ b/go1.3-tar_reuse_buffer_readHeader.patch @@ -0,0 +1,64 @@ +# HG changeset patch +# User Cristian Staretu +# Date 1404344479 -36000 +# Thu Jul 03 09:41:19 2014 +1000 +# Node ID 17404efd6b02d4b3acd17070e3f89de97a145877 +# Parent 837348e418f33fc7a242f56dbe2feff829532526 +archive/tar: reuse temporary buffer in readHeader + +A temporary 512 bytes buffer is allocated for every call to +readHeader. This buffer isn't returned to the caller and it could +be reused to lower the number of memory allocations. + +This CL improves it by using a pool and zeroing out the buffer before +putting it back into the pool. + +benchmark old ns/op new ns/op delta +BenchmarkListFiles100k 545249903 538832687 -1.18% + +benchmark old allocs new allocs delta +BenchmarkListFiles100k 2105167 2005692 -4.73% + +benchmark old bytes new bytes delta +BenchmarkListFiles100k 105903472 54831527 -48.22% + +This improvement is very important if your code has to deal with a lot +of tarballs which contain a lot of files. + +LGTM=dsymonds +R=golang-codereviews, dave, dsymonds, bradfitz +CC=golang-codereviews +https://codereview.appspot.com/108240044 + +Committer: David Symonds + +diff -r 837348e418f3 -r 17404efd6b02 src/pkg/archive/tar/reader.go +--- a/src/pkg/archive/tar/reader.go Thu Jul 03 09:40:53 2014 +1000 ++++ b/src/pkg/archive/tar/reader.go Thu Jul 03 09:41:19 2014 +1000 +@@ -29,10 +29,11 @@ + // The Next method advances to the next file in the archive (including the first), + // and then it can be treated as an io.Reader to access the file's data. + type Reader struct { +- r io.Reader +- err error +- pad int64 // amount of padding (ignored) after current file entry +- curr numBytesReader // reader for current file entry ++ r io.Reader ++ err error ++ pad int64 // amount of padding (ignored) after current file entry ++ curr numBytesReader // reader for current file entry ++ hdrBuff [blockSize]byte // buffer to use in readHeader + } + + // A numBytesReader is an io.Reader with a numBytes method, returning the number +@@ -426,7 +427,9 @@ + } + + func (tr *Reader) readHeader() *Header { +- header := make([]byte, blockSize) ++ header := tr.hdrBuff[:] ++ copy(header, zeroBlock) ++ + if _, tr.err = io.ReadFull(tr.r, header); tr.err != nil { + return nil + } diff --git a/go1.3-tar_reuse_buffer_writeHeader.patch b/go1.3-tar_reuse_buffer_writeHeader.patch new file mode 100644 index 0000000..6cd8969 --- /dev/null +++ b/go1.3-tar_reuse_buffer_writeHeader.patch @@ -0,0 +1,56 @@ +# HG changeset patch +# User Cristian Staretu +# Date 1404344453 -36000 +# Thu Jul 03 09:40:53 2014 +1000 +# Node ID 837348e418f33fc7a242f56dbe2feff829532526 +# Parent c5f72a685e256457a0872f6587e2bb9500eac7c4 +archive/tar: reuse temporary buffer in writeHeader + +A temporary 512 bytes buffer is allocated for every call to +writeHeader. This buffer could be reused the lower the number +of memory allocations. + +benchmark old ns/op new ns/op delta +BenchmarkWriteFiles100k 634622051 583810847 -8.01% + +benchmark old allocs new allocs delta +BenchmarkWriteFiles100k 2701920 2602621 -3.68% + +benchmark old bytes new bytes delta +BenchmarkWriteFiles100k 115383884 64349922 -44.23% + +This change is very important if your code has to write a lot of +tarballs with a lot of files. + +LGTM=dsymonds +R=golang-codereviews, dave, dsymonds +CC=golang-codereviews +https://codereview.appspot.com/107440043 + +Committer: David Symonds + +diff -r c5f72a685e25 -r 837348e418f3 src/pkg/archive/tar/writer.go +--- a/src/pkg/archive/tar/writer.go Wed Jul 02 15:28:57 2014 -0700 ++++ b/src/pkg/archive/tar/writer.go Thu Jul 03 09:40:53 2014 +1000 +@@ -37,8 +37,9 @@ + nb int64 // number of unwritten bytes for current file entry + pad int64 // amount of padding to write after current file entry + closed bool +- usedBinary bool // whether the binary numeric field extension was used +- preferPax bool // use pax header instead of binary numeric header ++ usedBinary bool // whether the binary numeric field extension was used ++ preferPax bool // use pax header instead of binary numeric header ++ hdrBuff [blockSize]byte // buffer to use in writeHeader + } + + // NewWriter creates a new Writer writing to w. +@@ -160,7 +161,8 @@ + // subsecond time resolution, but for now let's just capture + // too long fields or non ascii characters + +- header := make([]byte, blockSize) ++ header := tw.hdrBuff[:] ++ copy(header, zeroBlock) + s := slicer(header) + + // keep a reference to the filename to allow to overwrite it later if we detect that we can use ustar longnames instead of pax diff --git a/golang.spec b/golang.spec index 3bd1740..e3e9776 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: The Go Programming Language License: BSD @@ -73,6 +73,11 @@ Patch1: golang-1.2-remove-ECC-p224.patch # http://code.google.com/p/go/issues/detail?id=6522 Patch2: ./golang-1.2-skipCpuProfileTest.patch +# these patches can be dropped for go1.4 +# discovered working here https://github.com/dotcloud/docker/pull/6829 +Patch3: ./go1.3-tar_reuse_buffer_readHeader.patch +Patch4: ./go1.3-tar_reuse_buffer_writeHeader.patch + # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -357,6 +362,10 @@ end # skip flaky test %patch2 -p1 +# performance for archive/tar +%patch3 -p1 +%patch4 -p1 + # create a [dirty] gcc wrapper to allow us to build with our own flags # (dirty because it is spoofing 'gcc' since CC value is stored in the go tool) # TODO: remove this and just set CFLAGS/LDFLAGS once upstream supports it @@ -973,6 +982,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Mon Jul 07 2014 Vincent Batts - 1.3-2 +- archive/tar memory allocation improvements + * Thu Jun 19 2014 Vincent Batts - 1.3-1 - update to go1.3 From fa7c581616b0163d83c56953766c1550ae6ca243 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 8 Jul 2014 10:52:53 -0400 Subject: [PATCH 10/23] cleaning up the cross-compile process and deps bz1105901, bz1101508 --- golang.spec | 186 ++++++++-------------------------------------------- 1 file changed, 28 insertions(+), 158 deletions(-) diff --git a/golang.spec b/golang.spec index e3e9776..63263f2 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: The Go Programming Language License: BSD @@ -148,6 +148,7 @@ Provides: golang-bin = 386 # We strip the meta dependency, but go does require glibc. # This is an odd issue, still looking for a better fix. Requires: glibc +Requires: gcc Requires(post): %{_sbindir}/update-alternatives Requires(postun): %{_sbindir}/update-alternatives %description pkg-bin-linux-386 @@ -163,6 +164,7 @@ Provides: golang-bin = amd64 # We strip the meta dependency, but go does require glibc. # This is an odd issue, still looking for a better fix. Requires: glibc +Requires: gcc Requires(post): %{_sbindir}/update-alternatives Requires(postun): %{_sbindir}/update-alternatives %description pkg-bin-linux-amd64 @@ -178,6 +180,7 @@ Provides: golang-bin = arm # We strip the meta dependency, but go does require glibc. # This is an odd issue, still looking for a better fix. Requires: glibc +Requires: gcc Requires(post): %{_sbindir}/update-alternatives Requires(postun): %{_sbindir}/update-alternatives %description pkg-bin-linux-arm @@ -192,7 +195,6 @@ Requires(postun): %{_sbindir}/update-alternatives Summary: Golang compiler toolchain to compile for linux 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-linux-386 %{summary} @@ -200,7 +202,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for linux amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-linux-amd64 %{summary} @@ -208,7 +209,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for linux arm Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-linux-arm %{summary} @@ -216,7 +216,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for darwin 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-darwin-386 %{summary} @@ -224,7 +223,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for darwin amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-darwin-amd64 %{summary} @@ -232,7 +230,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for windows 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-windows-386 %{summary} @@ -240,7 +237,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for windows amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-windows-amd64 %{summary} @@ -248,7 +244,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for plan9 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-plan9-386 %{summary} @@ -256,7 +251,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for plan9 amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-plan9-amd64 %{summary} @@ -264,7 +258,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for freebsd 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-freebsd-386 %{summary} @@ -272,7 +265,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for freebsd amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-freebsd-amd64 %{summary} @@ -280,7 +272,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for freebsd arm Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-freebsd-arm %{summary} @@ -288,7 +279,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for netbsd 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-netbsd-386 %{summary} @@ -296,7 +286,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for netbsd amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-netbsd-amd64 %{summary} @@ -304,7 +293,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for netbsd arm Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-netbsd-arm %{summary} @@ -312,7 +300,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for openbsd 386 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-openbsd-386 %{summary} @@ -320,7 +307,6 @@ Requires(post): golang-bin Summary: Golang compiler toolchain to compile for openbsd amd64 Requires: go = %{version}-%{release} BuildArch: noarch -Requires(post): golang-bin %description pkg-openbsd-amd64 %{summary} @@ -330,7 +316,6 @@ Requires(post): golang-bin #Summary: Golang compiler toolchain to compile for openbsd arm #Requires: go = %{version}-%{release} #BuildArch: noarch -#Requires(post): golang-bin #%description pkg-openbsd-arm #%{summary} @@ -399,7 +384,7 @@ pushd src PATH="$(pwd -P)/../zz:$PATH" CC="gcc" \ GOOS=${goos} \ GOARCH=${goarch} \ - ./make.bash + ./make.bash --no-clean done done popd @@ -438,7 +423,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 -av api bin doc favicon.ico include lib pkg robots.txt src \ +cp -apv api bin doc favicon.ico include lib pkg robots.txt src misc VERSION \ $RPM_BUILD_ROOT%{goroot} # remove the unnecessary zoneinfo file (Go will always use the system one first) @@ -555,64 +540,14 @@ if [ $1 = 0 ]; then fi %endif -# All these archives need to be newer than the corresponding source in goroot -# https://bugzilla.redhat.com/show_bug.cgi?id=1099206 -%post pkg-linux-386 -GOROOT=%{goroot} GOOS=linux GOARCH=386 go install std - -%post pkg-linux-amd64 -GOROOT=%{goroot} GOOS=linux GOARCH=amd64 go install std - -%post pkg-linux-arm -GOROOT=%{goroot} GOOS=linux GOARCH=arm go install std - -%post pkg-darwin-386 -GOROOT=%{goroot} GOOS=darwin GOARCH=386 go install std - -%post pkg-darwin-amd64 -GOROOT=%{goroot} GOOS=darwin GOARCH=amd64 go install std - -%post pkg-windows-386 -GOROOT=%{goroot} GOOS=windows GOARCH=386 go install std - -%post pkg-windows-amd64 -GOROOT=%{goroot} GOOS=windows GOARCH=amd64 go install std - -%post pkg-plan9-386 -GOROOT=%{goroot} GOOS=plan9 GOARCH=386 go install std - -%post pkg-plan9-amd64 -GOROOT=%{goroot} GOOS=plan9 GOARCH=amd64 go install std - -%post pkg-freebsd-386 -GOROOT=%{goroot} GOOS=freebsd GOARCH=386 go install std - -%post pkg-freebsd-amd64 -GOROOT=%{goroot} GOOS=freebsd GOARCH=amd64 go install std - -%post pkg-freebsd-arm -GOROOT=%{goroot} GOOS=freebsd GOARCH=arm go install std - -%post pkg-netbsd-386 -GOROOT=%{goroot} GOOS=netbsd GOARCH=386 go install std - -%post pkg-netbsd-amd64 -GOROOT=%{goroot} GOOS=netbsd GOARCH=amd64 go install std - -%post pkg-netbsd-arm -GOROOT=%{goroot} GOOS=netbsd GOARCH=arm go install std - -%post pkg-openbsd-386 -GOROOT=%{goroot} GOOS=openbsd GOARCH=386 go install std - -%post pkg-openbsd-amd64 -GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std #%post pkg-openbsd-arm #GOROOT=%{goroot} GOOS=openbsd GOARCH=arm go install std %files -%doc AUTHORS CONTRIBUTORS LICENSE PATENTS VERSION +%doc AUTHORS CONTRIBUTORS LICENSE PATENTS +# VERSION has to be present in the GOROOT, for `go install std` to work +%doc %{goroot}/VERSION # go files %dir %{goroot} @@ -660,90 +595,6 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %files src %{goroot}/src/ -# files that are generated based on compile-time ARCH will go in that arch's pkg-bin-* -%ifarch %{ix86} - -# this is wacky that now these files are generated in a different arch -%exclude %{goroot}/src/pkg/runtime/zgoarch_386.go -%exclude %{goroot}/src/pkg/runtime/zgoarch_amd64.go - -%exclude %{goroot}/src/pkg/runtime/zasm_linux_386.h -%exclude %{goroot}/src/pkg/runtime/zmalloc_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zmprof_linux_386.c -%exclude %{goroot}/src/pkg/runtime/znetpoll_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zruntime1_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zruntime_defs_linux_386.go -%exclude %{goroot}/src/pkg/runtime/zsema_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zsigqueue_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zstring_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zsys_linux_386.s -%exclude %{goroot}/src/pkg/runtime/ztime_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zalg_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zchan_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zcomplex_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zcpuprof_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zhashmap_linux_386.c -%exclude %{goroot}/src/pkg/runtime/ziface_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zlfstack_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zrdebug_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zslice_linux_386.c -%exclude %{goroot}/src/pkg/runtime/zsymtab_linux_386.c -%endif - -%ifarch x86_64 -%exclude %{goroot}/src/pkg/runtime/zgoarch_amd64.go - -%exclude %{goroot}/src/pkg/runtime/zasm_linux_amd64.h -%exclude %{goroot}/src/pkg/runtime/zmprof_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zmalloc_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/znetpoll_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zsema_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zruntime1_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zruntime_defs_linux_amd64.go -%exclude %{goroot}/src/pkg/runtime/zsigqueue_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zstring_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zsys_linux_amd64.s -%exclude %{goroot}/src/pkg/runtime/ztime_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zalg_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zchan_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zcomplex_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zcpuprof_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zhashmap_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/ziface_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zlfstack_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zrdebug_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zslice_linux_amd64.c -%exclude %{goroot}/src/pkg/runtime/zsymtab_linux_amd64.c -%endif - -%ifarch %{arm} -%exclude %{goroot}/src/pkg/runtime/zgoarch_arm.go -%exclude %{goroot}/src/pkg/runtime/zgoarch_amd64.go - -%exclude %{goroot}/src/pkg/runtime/zasm_linux_arm.h -%exclude %{goroot}/src/pkg/runtime/znetpoll_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zmalloc_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zmprof_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/znoasm_arm_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zruntime1_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zruntime_defs_linux_arm.go -%exclude %{goroot}/src/pkg/runtime/zsema_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zsigqueue_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zstring_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zsys_linux_arm.s -%exclude %{goroot}/src/pkg/runtime/ztime_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zalg_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zchan_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zcomplex_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zcpuprof_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zhashmap_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/ziface_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zlfstack_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zrdebug_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zslice_linux_arm.c -%exclude %{goroot}/src/pkg/runtime/zsymtab_linux_arm.c -%endif - %ifarch %{ix86} %files pkg-bin-linux-386 @@ -755,6 +606,10 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/pkg/obj/linux_386/* %{goroot}/pkg/linux_386/runtime/cgo.a %dir %{goroot}/pkg/tool/linux_386 +%{goroot}/pkg/tool/linux_386/5a +%{goroot}/pkg/tool/linux_386/5c +%{goroot}/pkg/tool/linux_386/5g +%{goroot}/pkg/tool/linux_386/5l %{goroot}/pkg/tool/linux_386/6a %{goroot}/pkg/tool/linux_386/6c %{goroot}/pkg/tool/linux_386/6g @@ -805,10 +660,18 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/pkg/obj/linux_amd64/* %{goroot}/pkg/linux_amd64/runtime/cgo.a %dir %{goroot}/pkg/tool/linux_amd64 +%{goroot}/pkg/tool/linux_amd64/5a +%{goroot}/pkg/tool/linux_amd64/5c +%{goroot}/pkg/tool/linux_amd64/5g +%{goroot}/pkg/tool/linux_amd64/5l %{goroot}/pkg/tool/linux_amd64/6a %{goroot}/pkg/tool/linux_amd64/6c %{goroot}/pkg/tool/linux_amd64/6g %{goroot}/pkg/tool/linux_amd64/6l +%{goroot}/pkg/tool/linux_amd64/8a +%{goroot}/pkg/tool/linux_amd64/8c +%{goroot}/pkg/tool/linux_amd64/8g +%{goroot}/pkg/tool/linux_amd64/8l %{goroot}/pkg/tool/linux_amd64/addr2line %{goroot}/pkg/tool/linux_amd64/dist %{goroot}/pkg/tool/linux_amd64/nm @@ -859,6 +722,10 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %{goroot}/pkg/tool/linux_arm/6c %{goroot}/pkg/tool/linux_arm/6g %{goroot}/pkg/tool/linux_arm/6l +%{goroot}/pkg/tool/linux_arm/8a +%{goroot}/pkg/tool/linux_arm/8c +%{goroot}/pkg/tool/linux_arm/8g +%{goroot}/pkg/tool/linux_arm/8l %{goroot}/pkg/tool/linux_arm/addr2line %{goroot}/pkg/tool/linux_arm/dist %{goroot}/pkg/tool/linux_arm/nm @@ -982,6 +849,9 @@ GOROOT=%{goroot} GOOS=openbsd GOARCH=amd64 go install std %changelog +* Tue Jul 08 2014 Vincent Batts - 1.3-3 +- `go install std` requires gcc, to build cgo. bz1105901, bz1101508 + * Mon Jul 07 2014 Vincent Batts - 1.3-2 - archive/tar memory allocation improvements From 3a4853bd325d0f4308054fbf60a83f0d3e730098 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Tue, 15 Jul 2014 12:01:12 -0400 Subject: [PATCH 11/23] fix gdb init for safe-paths bz981356 --- golang-gdbinit | 1 - golang.spec | 17 ++++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/golang-gdbinit b/golang-gdbinit index 0a32958..4ef690b 100644 --- a/golang-gdbinit +++ b/golang-gdbinit @@ -1,2 +1 @@ add-auto-load-safe-path /usr/lib/golang/src/pkg/runtime/runtime-gdb.py -add-auto-load-safe-path /usr/lib64/golang/src/pkg/runtime/runtime-gdb.py diff --git a/golang.spec b/golang.spec index 63263f2..11c91bb 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: The Go Programming Language License: BSD @@ -487,7 +487,7 @@ cp -av misc/zsh/go $RPM_BUILD_ROOT%{_datadir}/zsh/site-functions # gdbinit mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d -cp -av %{SOURCE100} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d/golang +cp -av %{SOURCE100} $RPM_BUILD_ROOT%{_sysconfdir}/gdbinit.d/golang.gdb # prelink blacklist mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/prelink.conf.d @@ -849,16 +849,19 @@ fi %changelog -* Tue Jul 08 2014 Vincent Batts - 1.3-3 +* Tue Jul 15 2014 Vincent Batts - 1.3-4 +- fix the loading of gdb safe-path. bz981356 + +* Tue Jul 08 2014 Vincent Batts - 1.3-3 - `go install std` requires gcc, to build cgo. bz1105901, bz1101508 -* Mon Jul 07 2014 Vincent Batts - 1.3-2 +* Mon Jul 07 2014 Vincent Batts - 1.3-2 - archive/tar memory allocation improvements -* Thu Jun 19 2014 Vincent Batts - 1.3-1 +* Thu Jun 19 2014 Vincent Batts - 1.3-1 - update to go1.3 -* Fri Jun 13 2014 Vincent Batts - 1.3rc2-1 +* Fri Jun 13 2014 Vincent Batts - 1.3rc2-1 - update to go1.3rc2 * Sat Jun 07 2014 Fedora Release Engineering - 1.3rc1-2 @@ -919,7 +922,7 @@ fi * Tue Mar 04 2014 Adam Miller 1.2.1-1 - Update to latest upstream -* Thu Feb 20 2014 Adam Miller 1.2-7 +* Thu Feb 20 2014 Adam Miller 1.2-7 - Remove _BSD_SOURCE and _SVID_SOURCE, they are deprecated in recent versions of glibc and aren't needed From 374526de5b8e01ca359edc6c47e8f85f39d11100 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 21 Jul 2014 16:24:32 -0400 Subject: [PATCH 12/23] including archive/tar fix for PAX headers --- golang.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/golang.spec b/golang.spec index 11c91bb..30b502c 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 4%{?dist} +Release: 5%{?dist} Summary: The Go Programming Language License: BSD @@ -77,6 +77,8 @@ Patch2: ./golang-1.2-skipCpuProfileTest.patch # discovered working here https://github.com/dotcloud/docker/pull/6829 Patch3: ./go1.3-tar_reuse_buffer_readHeader.patch Patch4: ./go1.3-tar_reuse_buffer_writeHeader.patch +# https://code.google.com/p/go/source/detail?r=1b17b3426e3c +Patch5: ./go1.3-tar-fix_writing_of_pax_headers.patch # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -350,6 +352,8 @@ end # performance for archive/tar %patch3 -p1 %patch4 -p1 +# buffer the PAX header +%patch5 -p1 # create a [dirty] gcc wrapper to allow us to build with our own flags # (dirty because it is spoofing 'gcc' since CC value is stored in the go tool) @@ -849,6 +853,9 @@ fi %changelog +* Mon Jul 21 2014 Vincent Batts - 1.3-5 +- fix the writing of pax headers + * Tue Jul 15 2014 Vincent Batts - 1.3-4 - fix the loading of gdb safe-path. bz981356 From 59ec5bd186a3a6e648c6044b83b3a9c3dc024a4e Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 21 Jul 2014 16:43:50 -0400 Subject: [PATCH 13/23] actually adding the patch ... --- go1.3-tar-fix_writing_of_pax_headers.patch | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 go1.3-tar-fix_writing_of_pax_headers.patch diff --git a/go1.3-tar-fix_writing_of_pax_headers.patch b/go1.3-tar-fix_writing_of_pax_headers.patch new file mode 100644 index 0000000..1c847e7 --- /dev/null +++ b/go1.3-tar-fix_writing_of_pax_headers.patch @@ -0,0 +1,110 @@ +# HG changeset patch +# User Cristian Staretu +# Date 1405555229 -36000 +# Thu Jul 17 10:00:29 2014 +1000 +# Node ID 1b17b3426e3c281a973d2d7bbf235b936d6a0942 +# Parent 278365dff593f027db6c6b2c0a89262490d6b676 +archive/tar: fix writing of pax headers + +"archive/tar: reuse temporary buffer in writeHeader" introduced a +change which was supposed to help lower the number of allocations from +512 bytes for every call to writeHeader. This change broke the writing +of PAX headers. + +writeHeader calls writePAXHeader and writePAXHeader calls writeHeader +again. writeHeader will end up writing the PAX header twice. + +example broken header: +PaxHeaders.4007/NetLock_Arany_=Class_Gold=_Ftanstvny.crt0000000000000000000000000000007112301216634021512 xustar0000000000000000 +PaxHeaders.4007/NetLock_Arany_=Class_Gold=_Ftanstvny.crt0000000000000000000000000000007112301216634021512 xustar0000000000000000 + +example correct header: +PaxHeaders.4290/NetLock_Arany_=Class_Gold=_Ftanstvny.crt0000000000000000000000000000007112301216634021516 xustar0000000000000000 +0100644000000000000000000000270412301216634007250 0ustar0000000000000000 + +This commit adds a dedicated buffer for pax headers to the Writer +struct. This change increases the size of the struct by 512 bytes, but +allows tar/writer to avoid allocating 512 bytes for all written +headers and it avoids allocating 512 more bytes for pax headers. + +LGTM=dsymonds +R=dsymonds, dave, iant +CC=golang-codereviews +https://codereview.appspot.com/110480043 + +Committer: David Symonds + +diff -r 278365dff593 -r 1b17b3426e3c src/pkg/archive/tar/writer.go +--- a/src/pkg/archive/tar/writer.go Wed Jul 16 16:29:51 2014 -0700 ++++ b/src/pkg/archive/tar/writer.go Thu Jul 17 10:00:29 2014 +1000 +@@ -39,7 +39,8 @@ + closed bool + usedBinary bool // whether the binary numeric field extension was used + preferPax bool // use pax header instead of binary numeric header +- hdrBuff [blockSize]byte // buffer to use in writeHeader ++ hdrBuff [blockSize]byte // buffer to use in writeHeader when writing a regular header ++ paxHdrBuff [blockSize]byte // buffer to use in writeHeader when writing a pax header + } + + // NewWriter creates a new Writer writing to w. +@@ -161,7 +162,17 @@ + // subsecond time resolution, but for now let's just capture + // too long fields or non ascii characters + +- header := tw.hdrBuff[:] ++ var header []byte ++ ++ // We need to select which scratch buffer to use carefully, ++ // since this method is called recursively to write PAX headers. ++ // If allowPax is true, this is the non-recursive call, and we will use hdrBuff. ++ // If allowPax is false, we are being called by writePAXHeader, and hdrBuff is ++ // already being used by the non-recursive call, so we must use paxHdrBuff. ++ header = tw.hdrBuff[:] ++ if !allowPax { ++ header = tw.paxHdrBuff[:] ++ } + copy(header, zeroBlock) + s := slicer(header) + +diff -r 278365dff593 -r 1b17b3426e3c src/pkg/archive/tar/writer_test.go +--- a/src/pkg/archive/tar/writer_test.go Wed Jul 16 16:29:51 2014 -0700 ++++ b/src/pkg/archive/tar/writer_test.go Thu Jul 17 10:00:29 2014 +1000 +@@ -454,3 +454,38 @@ + t.Fatal("Couldn't recover long name") + } + } ++ ++func TestValidTypeflagWithPAXHeader(t *testing.T) { ++ var buffer bytes.Buffer ++ tw := NewWriter(&buffer) ++ ++ fileName := strings.Repeat("ab", 100) ++ ++ hdr := &Header{ ++ Name: fileName, ++ Size: 4, ++ Typeflag: 0, ++ } ++ if err := tw.WriteHeader(hdr); err != nil { ++ t.Fatalf("Failed to write header: %s", err) ++ } ++ if _, err := tw.Write([]byte("fooo")); err != nil { ++ t.Fatalf("Failed to write the file's data: %s", err) ++ } ++ tw.Close() ++ ++ tr := NewReader(&buffer) ++ ++ for { ++ header, err := tr.Next() ++ if err == io.EOF { ++ break ++ } ++ if err != nil { ++ t.Fatalf("Failed to read header: %s", err) ++ } ++ if header.Typeflag != 0 { ++ t.Fatalf("Typeflag should've been 0, found %d", header.Typeflag) ++ } ++ } ++} From 42cdf8dacaf767f0c87854bd52e2afb0bcd84fa7 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 6 Aug 2014 21:23:25 +0000 Subject: [PATCH 14/23] making the golang-src package arch'ed. Fixes bz1099206 --- golang.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/golang.spec b/golang.spec index 30b502c..4b40d95 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 5%{?dist} +Release: 6%{?dist} Summary: The Go Programming Language License: BSD @@ -134,8 +134,6 @@ BuildArch: noarch %package src Summary: Golang compiler source tree Requires: go = %{version}-%{release} -# the binary bits in this tree are for testdata -BuildArch: noarch %description src %{summary} @@ -853,6 +851,9 @@ fi %changelog +* Wed Aug 06 2014 Vincent Batts - 1.3-6 +- make the source subpackage arch'ed, instead of noarch + * Mon Jul 21 2014 Vincent Batts - 1.3-5 - fix the writing of pax headers From 1afe7e2655c3c021aa9dfc88e1455675ebdb0e8d Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Fri, 8 Aug 2014 21:11:50 +0000 Subject: [PATCH 15/23] set source directory timestamps during %install --- golang.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/golang.spec b/golang.spec index 4b40d95..816eb66 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 6%{?dist} +Release: 7%{?dist} Summary: The Go Programming Language License: BSD @@ -428,6 +428,8 @@ mkdir -p $RPM_BUILD_ROOT%{goroot} cp -apv api bin doc favicon.ico include lib pkg robots.txt src misc VERSION \ $RPM_BUILD_ROOT%{goroot} +find $RPM_BUILD_ROOT%{goroot}/src -type d -exec touch -r $RPM_BUILD_ROOT%{goroot}/VERSION "{}" \; + # remove the unnecessary zoneinfo file (Go will always use the system one first) rm -rfv $RPM_BUILD_ROOT%{goroot}/lib/time @@ -851,6 +853,9 @@ fi %changelog +* Fri Aug 08 2014 Vincent Batts - 1.3-7 +- update timestamps of source during %%install bz1099206 + * Wed Aug 06 2014 Vincent Batts - 1.3-6 - make the source subpackage arch'ed, instead of noarch From dd6f77ac9aa8a81153ed32a448f2dbaeefb3bc89 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 11 Aug 2014 14:41:34 +0000 Subject: [PATCH 16/23] don't just update directories --- golang.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/golang.spec b/golang.spec index 816eb66..2bff310 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 7%{?dist} +Release: 8%{?dist} Summary: The Go Programming Language License: BSD @@ -428,7 +428,8 @@ mkdir -p $RPM_BUILD_ROOT%{goroot} cp -apv api bin doc favicon.ico include lib pkg robots.txt src misc VERSION \ $RPM_BUILD_ROOT%{goroot} -find $RPM_BUILD_ROOT%{goroot}/src -type d -exec touch -r $RPM_BUILD_ROOT%{goroot}/VERSION "{}" \; +# bz1099206 +find $RPM_BUILD_ROOT%{goroot}/src -exec touch -r $RPM_BUILD_ROOT%{goroot}/VERSION "{}" \; # remove the unnecessary zoneinfo file (Go will always use the system one first) rm -rfv $RPM_BUILD_ROOT%{goroot}/lib/time @@ -853,6 +854,9 @@ fi %changelog +* Mon Aug 11 2014 Vincent Batts - 1.3-8 +- update timestamps of source files during %%install bz1099206 + * Fri Aug 08 2014 Vincent Batts - 1.3-7 - update timestamps of source during %%install bz1099206 From ab9b26510d64b33503ecd4ad2b5cb76ed80e48b5 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 11 Aug 2014 15:28:01 +0000 Subject: [PATCH 17/23] make golang-src noarch again --- golang.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/golang.spec b/golang.spec index 2bff310..38f49b2 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 8%{?dist} +Release: 9%{?dist} Summary: The Go Programming Language License: BSD @@ -134,6 +134,7 @@ BuildArch: noarch %package src Summary: Golang compiler source tree Requires: go = %{version}-%{release} +BuildArch: noarch %description src %{summary} @@ -854,6 +855,9 @@ fi %changelog +* Mon Aug 11 2014 Vincent Batts - 1.3-9 +- make golang-src 'noarch' again, since that was not a fix, and takes up more space + * Mon Aug 11 2014 Vincent Batts - 1.3-8 - update timestamps of source files during %%install bz1099206 From b025cc279bd9f8abfec5ba968b001181ad036864 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 13 Aug 2014 19:25:50 +0000 Subject: [PATCH 18/23] fixing bz1099206 --- golang.spec | 122 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 85 insertions(+), 37 deletions(-) diff --git a/golang.spec b/golang.spec index 38f49b2..04c6f07 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 9%{?dist} +Release: 10%{?dist} Summary: The Go Programming Language License: BSD @@ -145,6 +145,7 @@ BuildArch: noarch Summary: Golang compiler tool for linux 386 Requires: go = %{version}-%{release} Requires: golang-pkg-linux-386 = %{version}-%{release} +Requires(post): golang-pkg-linux-386 = %{version}-%{release} Provides: golang-bin = 386 # We strip the meta dependency, but go does require glibc. # This is an odd issue, still looking for a better fix. @@ -161,6 +162,7 @@ Requires(postun): %{_sbindir}/update-alternatives Summary: Golang compiler tool for linux amd64 Requires: go = %{version}-%{release} Requires: golang-pkg-linux-amd64 = %{version}-%{release} +Requires(post): golang-pkg-linux-amd64 = %{version}-%{release} Provides: golang-bin = amd64 # We strip the meta dependency, but go does require glibc. # This is an odd issue, still looking for a better fix. @@ -177,6 +179,7 @@ Requires(postun): %{_sbindir}/update-alternatives Summary: Golang compiler tool for linux arm Requires: go = %{version}-%{release} Requires: golang-pkg-linux-arm = %{version}-%{release} +Requires(post): golang-pkg-linux-arm = %{version}-%{release} Provides: golang-bin = arm # We strip the meta dependency, but go does require glibc. # This is an odd issue, still looking for a better fix. @@ -399,24 +402,6 @@ mv emacs/go-mode-load.el emacs/%{name}-init.el cd .. -%check -export GOROOT=$(pwd -P) -export PATH="$PATH":"$GOROOT"/bin -cd src - -# skip using CGO for test. causes a SIGABRT on fc21 (bz1086900) -# until this test/issue is fixed -# https://bugzilla.redhat.com/show_bug.cgi?id=1086900 -# CGO for test, which fails in i686 on fc21 inside mock/chroot (bz1087621) -# https://bugzilla.redhat.com/show_bug.cgi?id=1087621 - -# not using our 'gcc' since the CFLAGS fails crash_cgo_test.go due to unused variables -# https://code.google.com/p/go/issues/detail?id=6883 -CGO_ENABLED=0 ./run.bash --no-rebuild - -cd .. - - %install rm -rf $RPM_BUILD_ROOT @@ -431,6 +416,34 @@ cp -apv api bin doc favicon.ico include lib pkg robots.txt src misc VERSION \ # bz1099206 find $RPM_BUILD_ROOT%{goroot}/src -exec touch -r $RPM_BUILD_ROOT%{goroot}/VERSION "{}" \; +# and level out all the built archives +touch $RPM_BUILD_ROOT%{goroot}/pkg +find $RPM_BUILD_ROOT%{goroot}/pkg -exec touch -r $RPM_BUILD_ROOT%{goroot}/pkg "{}" \; +# generate the spec file ownership of this source tree and packages +cwd=$(pwd) +src_list=$cwd/go-src.list +rm -f $src_list +touch $src_list +pushd $RPM_BUILD_ROOT%{goroot} + find src/ -type d -printf '%%%dir %{goroot}/%p\n' >> $src_list + find src/ ! -type d -printf '%{goroot}/%p\n' >> $src_list + + + for goos in darwin freebsd linux netbsd openbsd plan9 windows ; do + for goarch in 386 amd64 arm ; do + if [ "${goarch}" = "arm" ] ; then + if [ "${goos}" = "darwin" -o "${goos}" = "windows" -o "${goos}" = "plan9" -o "${goos}" = "openbsd" ] ;then + continue + fi + fi + file_list=${cwd}/pkg-${goos}-${goarch}.list + rm -f $file_list + touch $file_list + find pkg/${goos}_${goarch}/ -type d -printf '%%%dir %{goroot}/%p\n' >> $file_list + find pkg/${goos}_${goarch}/ ! -type d -printf '%{goroot}/%p\n' >> $file_list + done + done +popd # remove the unnecessary zoneinfo file (Go will always use the system one first) rm -rfv $RPM_BUILD_ROOT%{goroot}/lib/time @@ -510,7 +523,31 @@ cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.golang %endif +%check +export GOROOT=$(pwd -P) +export PATH="$PATH":"$GOROOT"/bin +cd src +# skip using CGO for test. causes a SIGABRT on fc21 (bz1086900) +# until this test/issue is fixed +# https://bugzilla.redhat.com/show_bug.cgi?id=1086900 +# CGO for test, which fails in i686 on fc21 inside mock/chroot (bz1087621) +# https://bugzilla.redhat.com/show_bug.cgi?id=1087621 + +# not using our 'gcc' since the CFLAGS fails crash_cgo_test.go due to unused variables +# https://code.google.com/p/go/issues/detail?id=6883 +CGO_ENABLED=0 ./run.bash --no-rebuild +cd .. + +if [ $(go list -json std | grep Stale | wc -l) -gt 2 ] ; then + # cmd/go and cmd/gofmt show like they are stale. we can ignore + exit 1 +fi + + %ifarch %{ix86} +# since the cgo.a packaged in this rpm will be older than the other archives likely built on the ARM builder, +touch -r %{goroot}/pkg/linux_386/runtime.a %{goroot}/pkg/linux_386/runtime/cgo.a + %post pkg-bin-linux-386 %{_sbindir}/update-alternatives --install %{_bindir}/go \ go %{goroot}/bin/linux_386/go 90 \ @@ -524,6 +561,9 @@ fi %ifarch x86_64 %post pkg-bin-linux-amd64 +# since the cgo.a packaged in this rpm will be older than the other archives likely built on the ARM builder, +touch -r %{goroot}/pkg/linux_amd64/runtime.a %{goroot}/pkg/linux_amd64/runtime/cgo.a + %{_sbindir}/update-alternatives --install %{_bindir}/go \ go %{goroot}/bin/linux_amd64/go 90 \ --slave %{_bindir}/gofmt gofmt %{goroot}/bin/linux_amd64/gofmt @@ -536,6 +576,9 @@ fi %ifarch %{arm} %post pkg-bin-linux-arm +# since the cgo.a packaged in this rpm will be older than the other archives likely built on the ARM builder, +touch -r %{goroot}/pkg/linux_arm/runtime.a %{goroot}/pkg/linux_arm/runtime/cgo.a + %{_sbindir}/update-alternatives --install %{_bindir}/go \ go %{goroot}/bin/linux_arm/go 90 \ --slave %{_bindir}/gofmt gofmt %{goroot}/bin/linux_arm/gofmt @@ -599,7 +642,7 @@ fi %{_emacs_sitestartdir}/*.el -%files src +%files -f go-src.list src %{goroot}/src/ %ifarch %{ix86} @@ -765,7 +808,7 @@ fi %{goroot}/src/pkg/runtime/zsymtab_linux_arm.c %endif -%files pkg-linux-386 +%files pkg-linux-386 -f pkg-linux-386.list %{goroot}/pkg/linux_386/ %ifarch %{ix86} %exclude %{goroot}/pkg/linux_386/runtime/cgo.a @@ -774,7 +817,7 @@ fi %{goroot}/pkg/tool/linux_386/fix %{goroot}/pkg/tool/linux_386/yacc -%files pkg-linux-amd64 +%files pkg-linux-amd64 -f pkg-linux-amd64.list %{goroot}/pkg/linux_amd64/ %ifarch x86_64 %exclude %{goroot}/pkg/linux_amd64/runtime/cgo.a @@ -783,7 +826,7 @@ fi %{goroot}/pkg/tool/linux_amd64/fix %{goroot}/pkg/tool/linux_amd64/yacc -%files pkg-linux-arm +%files pkg-linux-arm -f pkg-linux-arm.list %{goroot}/pkg/linux_arm/ %ifarch %{arm} %exclude %{goroot}/pkg/linux_arm/runtime/cgo.a @@ -792,59 +835,59 @@ fi %{goroot}/pkg/tool/linux_arm/fix %{goroot}/pkg/tool/linux_arm/yacc -%files pkg-darwin-386 +%files pkg-darwin-386 -f pkg-darwin-386.list %{goroot}/pkg/darwin_386/ %{goroot}/pkg/tool/darwin_386/ -%files pkg-darwin-amd64 +%files pkg-darwin-amd64 -f pkg-darwin-amd64.list %{goroot}/pkg/darwin_amd64/ %{goroot}/pkg/tool/darwin_amd64/ -%files pkg-windows-386 +%files pkg-windows-386 -f pkg-windows-386.list %{goroot}/pkg/windows_386/ %{goroot}/pkg/tool/windows_386/ -%files pkg-windows-amd64 +%files pkg-windows-amd64 -f pkg-windows-amd64.list %{goroot}/pkg/windows_amd64/ %{goroot}/pkg/tool/windows_amd64/ -%files pkg-plan9-386 +%files pkg-plan9-386 -f pkg-plan9-386.list %{goroot}/pkg/plan9_386/ %{goroot}/pkg/tool/plan9_386/ -%files pkg-plan9-amd64 +%files pkg-plan9-amd64 -f pkg-plan9-amd64.list %{goroot}/pkg/plan9_amd64/ %{goroot}/pkg/tool/plan9_amd64/ -%files pkg-freebsd-386 +%files pkg-freebsd-386 -f pkg-freebsd-386.list %{goroot}/pkg/freebsd_386/ %{goroot}/pkg/tool/freebsd_386/ -%files pkg-freebsd-amd64 +%files pkg-freebsd-amd64 -f pkg-freebsd-amd64.list %{goroot}/pkg/freebsd_amd64/ %{goroot}/pkg/tool/freebsd_amd64/ -%files pkg-freebsd-arm +%files pkg-freebsd-arm -f pkg-freebsd-arm.list %{goroot}/pkg/freebsd_arm/ %{goroot}/pkg/tool/freebsd_arm/ -%files pkg-netbsd-386 +%files pkg-netbsd-386 -f pkg-netbsd-386.list %{goroot}/pkg/netbsd_386/ %{goroot}/pkg/tool/netbsd_386/ -%files pkg-netbsd-amd64 +%files pkg-netbsd-amd64 -f pkg-netbsd-amd64.list %{goroot}/pkg/netbsd_amd64/ %{goroot}/pkg/tool/netbsd_amd64/ -%files pkg-netbsd-arm +%files pkg-netbsd-arm -f pkg-netbsd-arm.list %{goroot}/pkg/netbsd_arm/ %{goroot}/pkg/tool/netbsd_arm/ -%files pkg-openbsd-386 +%files pkg-openbsd-386 -f pkg-openbsd-386.list %{goroot}/pkg/openbsd_386/ %{goroot}/pkg/tool/openbsd_386/ -%files pkg-openbsd-amd64 +%files pkg-openbsd-amd64 -f pkg-openbsd-amd64.list %{goroot}/pkg/openbsd_amd64/ %{goroot}/pkg/tool/openbsd_amd64/ @@ -855,6 +898,11 @@ fi %changelog +* Wed Aug 13 2014 Vincent Batts - 1.3-10 +- more work to get cgo.a timestamps to line up, due to build-env +- explicitly list all the files and directories for the source and packages trees +- touch all the built archives to be the same + * Mon Aug 11 2014 Vincent Batts - 1.3-9 - make golang-src 'noarch' again, since that was not a fix, and takes up more space From 81887c2abdceed276b466e632185a0d1231e399f Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 13 Aug 2014 20:04:30 +0000 Subject: [PATCH 19/23] fixed a merge --- golang.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/golang.spec b/golang.spec index 04c6f07..3ed3c25 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3 -Release: 10%{?dist} +Release: 11%{?dist} Summary: The Go Programming Language License: BSD @@ -545,10 +545,10 @@ fi %ifarch %{ix86} +%post pkg-bin-linux-386 # since the cgo.a packaged in this rpm will be older than the other archives likely built on the ARM builder, touch -r %{goroot}/pkg/linux_386/runtime.a %{goroot}/pkg/linux_386/runtime/cgo.a -%post pkg-bin-linux-386 %{_sbindir}/update-alternatives --install %{_bindir}/go \ go %{goroot}/bin/linux_386/go 90 \ --slave %{_bindir}/gofmt gofmt %{goroot}/bin/linux_386/gofmt @@ -898,6 +898,9 @@ fi %changelog +* Wed Aug 13 2014 Vincent Batts - 1.3-11 +- merged a line wrong + * Wed Aug 13 2014 Vincent Batts - 1.3-10 - more work to get cgo.a timestamps to line up, due to build-env - explicitly list all the files and directories for the source and packages trees From ec1155188c27ecad80d7330506b43654c4c0cebb Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 13 Aug 2014 20:37:18 +0000 Subject: [PATCH 20/23] update to go1.3.1 --- .gitignore | 1 + golang-1.2-BSD-SVID-SOURCE.patch | 11 ++++++----- golang.spec | 11 +++++++---- sources | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index bb34c32..737f187 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /go1.3rc1.src.tar.gz /go1.3rc2.src.tar.gz /go1.3.src.tar.gz +/go1.3.1.src.tar.gz diff --git a/golang-1.2-BSD-SVID-SOURCE.patch b/golang-1.2-BSD-SVID-SOURCE.patch index 5e638d6..f4927b6 100644 --- a/golang-1.2-BSD-SVID-SOURCE.patch +++ b/golang-1.2-BSD-SVID-SOURCE.patch @@ -1,8 +1,8 @@ -Index: include/u.h +Index: go/include/u.h =================================================================== ---- include/u.h.orig -+++ include/u.h -@@ -38,9 +38,12 @@ extern "C" { +--- go.orig/include/u.h ++++ go/include/u.h +@@ -38,10 +38,13 @@ extern "C" { # define __MAKECONTEXT_V2_SOURCE 1 # endif #endif @@ -10,7 +10,8 @@ Index: include/u.h +#define _DEFAULT_SOURCE 1 +#else #define _BSD_SOURCE 1 --#define _NETBSD_SOURCE 1 /* NetBSD */ + #define _NETBSD_SOURCE 1 /* NetBSD */ +-#define _DEFAULT_SOURCE 1 /* glibc > 2.19 */ #define _SVID_SOURCE 1 +#endif #if !defined(__APPLE__) && !defined(__OpenBSD__) diff --git a/golang.spec b/golang.spec index 3ed3c25..6b41415 100644 --- a/golang.spec +++ b/golang.spec @@ -38,13 +38,13 @@ %endif Name: golang -Version: 1.3 -Release: 11%{?dist} +Version: 1.3.1 +Release: 1%{?dist} Summary: The Go Programming Language License: BSD URL: http://golang.org/ -Source0: http://golang.org/dl/go%{version}.src.tar.gz +Source0: https://storage.googleapis.com/golang/go%{version}.src.tar.gz # this command moved places %if 0%{?fedora} >= 21 @@ -339,7 +339,7 @@ end %if 0%{?fedora} >= 21 %patch210 -p0 -%patch211 -p0 +%patch211 -p1 %endif # increase verbosity of build @@ -898,6 +898,9 @@ fi %changelog +* Wed Aug 13 2014 Vincent Batts - 1.3.1-1 +- update to go1.3.1 + * Wed Aug 13 2014 Vincent Batts - 1.3-11 - merged a line wrong diff --git a/sources b/sources index a687b67..2615dec 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar -4b66d7249554181c314f139ea78920b1 go1.3.src.tar.gz +13e32d14e974e3d903fa2de03581c681 go1.3.1.src.tar.gz From 726440c4062e995c3cee2ec8de135a1f6d81ae48 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 16 Aug 2014 18:34:09 +0000 Subject: [PATCH 21/23] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- golang.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/golang.spec b/golang.spec index 6b41415..9ee4a59 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: The Go Programming Language License: BSD @@ -898,6 +898,9 @@ fi %changelog +* Sat Aug 16 2014 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Wed Aug 13 2014 Vincent Batts - 1.3.1-1 - update to go1.3.1 From 999ceca490b60f5963e7541b3aa5042fd290ef7b Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Thu, 11 Sep 2014 22:52:03 +0000 Subject: [PATCH 22/23] patching the tzinfo test --- golang.spec | 11 ++++++++++- skip_syndey_time_test.patch | 13 +++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 skip_syndey_time_test.patch diff --git a/golang.spec b/golang.spec index 9ee4a59..c561065 100644 --- a/golang.spec +++ b/golang.spec @@ -39,7 +39,7 @@ Name: golang Version: 1.3.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: The Go Programming Language License: BSD @@ -80,6 +80,9 @@ Patch4: ./go1.3-tar_reuse_buffer_writeHeader.patch # https://code.google.com/p/go/source/detail?r=1b17b3426e3c Patch5: ./go1.3-tar-fix_writing_of_pax_headers.patch +# https://code.google.com/p/go/issues/detail?id=8547 +Patch6: ./skip_syndey_time_test.patch + # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -357,6 +360,9 @@ end # buffer the PAX header %patch5 -p1 +# new tzinfo breaks a single unit test +%patch6 -p1 + # create a [dirty] gcc wrapper to allow us to build with our own flags # (dirty because it is spoofing 'gcc' since CC value is stored in the go tool) # TODO: remove this and just set CFLAGS/LDFLAGS once upstream supports it @@ -898,6 +904,9 @@ fi %changelog +* Thu Sep 11 2014 Vincent Batts - 1.3.1-3 +- patching the tzinfo failure + * Sat Aug 16 2014 Fedora Release Engineering - 1.3.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild diff --git a/skip_syndey_time_test.patch b/skip_syndey_time_test.patch new file mode 100644 index 0000000..265acd5 --- /dev/null +++ b/skip_syndey_time_test.patch @@ -0,0 +1,13 @@ +Index: go/src/pkg/time/format_test.go +=================================================================== +--- go.orig/src/pkg/time/format_test.go ++++ go/src/pkg/time/format_test.go +@@ -183,7 +183,7 @@ func TestParse(t *testing.T) { + } + } + +-func TestParseInSydney(t *testing.T) { ++func testParseInSydney(t *testing.T) { + loc, err := LoadLocation("Australia/Sydney") + if err != nil { + t.Fatal(err) From 8cfb9c493a567e61ebe4e7e22bcef2636b177ad4 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Mon, 29 Sep 2014 13:53:01 +0000 Subject: [PATCH 23/23] update to go1.3.2 fixes: bz1147324 --- .gitignore | 1 + golang.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 737f187..0b95e48 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /go1.3rc2.src.tar.gz /go1.3.src.tar.gz /go1.3.1.src.tar.gz +/go1.3.2.src.tar.gz diff --git a/golang.spec b/golang.spec index c561065..a7ac3fd 100644 --- a/golang.spec +++ b/golang.spec @@ -38,8 +38,8 @@ %endif Name: golang -Version: 1.3.1 -Release: 3%{?dist} +Version: 1.3.2 +Release: 1%{?dist} Summary: The Go Programming Language License: BSD @@ -904,6 +904,9 @@ fi %changelog +* Mon Sep 29 2014 Vincent Batts - 1.3.2-1 +- update to go1.3.2 (bz1147324) + * Thu Sep 11 2014 Vincent Batts - 1.3.1-3 - patching the tzinfo failure diff --git a/sources b/sources index 2615dec..aba50bb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ d76dc07e475b2905b5fec1cf319b6356 golang-19087:a15f344a9efa-xattrs.tar -13e32d14e974e3d903fa2de03581c681 go1.3.1.src.tar.gz +72982ca92b8fbb74ad9b5a056bca9cbf go1.3.2.src.tar.gz