mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
extra/go to 1.8-3
This commit is contained in:
parent
4ecdb61ad4
commit
6d972c2713
2 changed files with 150 additions and 113 deletions
|
@ -0,0 +1,93 @@
|
|||
From 91563ced5897faf729a34be7081568efcfedda31 Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Donizetti <alb.donizetti@gmail.com>
|
||||
Date: Thu, 9 Mar 2017 13:20:54 +0100
|
||||
Subject: [PATCH] time: make the ParseInLocation test more robust
|
||||
|
||||
The tzdata 2017a update (2017-02-28) changed the abbreviation of the
|
||||
Asia/Baghdad time zone (used in TestParseInLocation) from 'AST' to the
|
||||
numeric '+03'.
|
||||
|
||||
Update the test so that it skips the checks if we're using a recent
|
||||
tzdata release.
|
||||
|
||||
Fixes #19457
|
||||
|
||||
Change-Id: I45d705a5520743a611bdd194dc8f8d618679980c
|
||||
Reviewed-on: https://go-review.googlesource.com/37964
|
||||
Reviewed-by: Ian Lance Taylor <iant@golang.org>
|
||||
Run-TryBot: Ian Lance Taylor <iant@golang.org>
|
||||
TryBot-Result: Gobot Gobot <gobot@golang.org>
|
||||
---
|
||||
src/time/format_test.go | 41 +++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 31 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/time/format_test.go b/src/time/format_test.go
|
||||
index 219c2ca..d0013bc 100644
|
||||
--- a/src/time/format_test.go
|
||||
+++ b/src/time/format_test.go
|
||||
@@ -245,27 +245,45 @@ func TestParseDayOutOfRange(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
+// TestParseInLocation checks that the Parse and ParseInLocation
|
||||
+// functions do not get confused by the fact that AST (Arabia Standard
|
||||
+// Time) and AST (Atlantic Standard Time) are different time zones,
|
||||
+// even though they have the same abbreviation.
|
||||
+//
|
||||
+// ICANN has been slowly phasing out invented abbreviation in favor of
|
||||
+// numeric time zones (for example, the Asia/Baghdad time zone
|
||||
+// abbreviation got changed from AST to +03 in the 2017a tzdata
|
||||
+// release); but we still want to make sure that the time package does
|
||||
+// not get confused on systems with slightly older tzdata packages.
|
||||
func TestParseInLocation(t *testing.T) {
|
||||
- // Check that Parse (and ParseInLocation) understand that
|
||||
- // Feb 01 AST (Arabia Standard Time) and Feb 01 AST (Atlantic Standard Time)
|
||||
- // are in different time zones even though both are called AST
|
||||
|
||||
baghdad, err := LoadLocation("Asia/Baghdad")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
- t1, err := ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 AST", baghdad)
|
||||
+ var t1, t2 Time
|
||||
+
|
||||
+ t1, err = ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 AST", baghdad)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
- t2 := Date(2013, February, 1, 00, 00, 00, 0, baghdad)
|
||||
- if t1 != t2 {
|
||||
- t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad) = %v, want %v", t1, t2)
|
||||
- }
|
||||
+
|
||||
_, offset := t1.Zone()
|
||||
- if offset != 3*60*60 {
|
||||
- t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad).Zone = _, %d, want _, %d", offset, 3*60*60)
|
||||
+
|
||||
+ // A zero offset means that ParseInLocation did not recognize the
|
||||
+ // 'AST' abbreviation as matching the current location (Baghdad,
|
||||
+ // where we'd expect a +03 hrs offset); likely because we're using
|
||||
+ // a recent tzdata release (2017a or newer).
|
||||
+ // If it happens, skip the Baghdad test.
|
||||
+ if offset != 0 {
|
||||
+ t2 = Date(2013, February, 1, 00, 00, 00, 0, baghdad)
|
||||
+ if t1 != t2 {
|
||||
+ t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad) = %v, want %v", t1, t2)
|
||||
+ }
|
||||
+ if offset != 3*60*60 {
|
||||
+ t.Fatalf("ParseInLocation(Feb 01 2013 AST, Baghdad).Zone = _, %d, want _, %d", offset, 3*60*60)
|
||||
+ }
|
||||
}
|
||||
|
||||
blancSablon, err := LoadLocation("America/Blanc-Sablon")
|
||||
@@ -273,6 +291,9 @@ func TestParseInLocation(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
+ // In this case 'AST' means 'Atlantic Standard Time', and we
|
||||
+ // expect the abbreviation to correctly match the american
|
||||
+ // location.
|
||||
t1, err = ParseInLocation("Jan 02 2006 MST", "Feb 01 2013 AST", blancSablon)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
|
@ -1,145 +1,89 @@
|
|||
# $Id$
|
||||
# Maintainer: Alexander F Rødseth <xyproto@archlinux.org>
|
||||
# Maintainer: Pierre Neidhardt <ambrevar@gmail.com>
|
||||
# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
|
||||
# Contributor: Rémy Oudompheng <remy@archlinux.org>
|
||||
# Contributor: Andres Perera <andres87p gmail>
|
||||
# Contributor: Matthew Bauer <mjbauer95@gmail.com>
|
||||
# Contributor: Christian Himpel <chressie@gmail.com>
|
||||
# Contributor: Mike Rosset <mike.rosset@gmail.com>
|
||||
# Contributor: Daniel YC Lin <dlin.tw@gmail.com>
|
||||
# Contributor: John Luebs <jkluebs@gmail.com>
|
||||
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - added switches for our architectures
|
||||
# - upstream patch for AArch64
|
||||
|
||||
pkgname=('go' 'go-tools')
|
||||
pkgname=go
|
||||
epoch=2
|
||||
pkgver=1.8
|
||||
pkgrel=1.2
|
||||
arch=('arm' 'armv6h' 'armv7h' 'aarch64')
|
||||
pkgrel=3
|
||||
pkgdesc='Core compiler tools for the Go programming language'
|
||||
arch=(i686 x86_64)
|
||||
url='http://golang.org/'
|
||||
license=('BSD')
|
||||
makedepends=('inetutils' 'git' 'go')
|
||||
options=('!strip' 'staticlibs')
|
||||
source=("$pkgname-$pkgver::git+https://go.googlesource.com/go#tag=$pkgname$pkgver")
|
||||
md5sums=('SKIP')
|
||||
_gourl=golang.org/x/tools/cmd
|
||||
license=(BSD)
|
||||
makedepends=(git go)
|
||||
options=(!strip staticlibs)
|
||||
_commit=cd6b6202dd1559b3ac63179b45f1833fcfbe7eca # go1.8
|
||||
source=(git+https://go.googlesource.com/go#commit=$_commit
|
||||
0001-time-make-the-ParseInLocation-test-more-robust.patch)
|
||||
md5sums=('SKIP'
|
||||
'a9031d2fdd5d0951980db7ffe20afe41')
|
||||
|
||||
export GOOS=linux
|
||||
case "$CARCH" in
|
||||
x86_64) export GOARCH=amd64 ;;
|
||||
i686) export GOARCH=386 GO386=387 ;;
|
||||
arm) export GOARCH=arm GOARM=5 ;;
|
||||
armv6h) export GOARCH=arm GOARM=6 ;;
|
||||
armv7h) export GOARCH=arm GOARM=7 ;;
|
||||
aarch64) export GOARCH=arm64 ;;
|
||||
esac
|
||||
export GOROOT_FINAL=/usr/lib/go
|
||||
export GOROOT_BOOTSTRAP=/usr/lib/go
|
||||
|
||||
prepare() {
|
||||
cd "$pkgname-$pkgver"
|
||||
cd $pkgname
|
||||
|
||||
# fixes time/format test with tzdata >=2017a
|
||||
patch -p1 -i "$srcdir/0001-time-make-the-ParseInLocation-test-more-robust.patch"
|
||||
|
||||
# upstream patch for AArch64
|
||||
git cherry-pick -n 3557d546090c7fedd69562c88d20767397de835d
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$pkgname-$pkgver/src"
|
||||
|
||||
export GOARCH=arm
|
||||
[ "$CARCH" == 'arm' ] && export GOARM=5
|
||||
[ "$CARCH" == 'armv6h' ] && export GOARM=6
|
||||
[ "$CARCH" == 'armv7h' ] && export GOARM=7
|
||||
[ "$CARCH" == 'aarch64' ] && export GOARCH=arm64
|
||||
|
||||
export GOROOT_FINAL=/usr/lib/go
|
||||
export GOROOT_BOOTSTRAP=/usr/lib/go
|
||||
export GOOS=linux
|
||||
export GOPATH="$srcdir/"
|
||||
export GOROOT="$srcdir/$pkgname-$pkgver"
|
||||
export GOROOT="$srcdir/$pkgname"
|
||||
export GOBIN="$GOROOT/bin"
|
||||
export GOPATH="$srcdir/"
|
||||
|
||||
bash make.bash --no-clean
|
||||
|
||||
# System-wide tools
|
||||
for tool in godex godoc goimports gomvpkg gorename gotype; do
|
||||
$GOROOT/bin/go get -d golang.org/x/tools/cmd/$tool
|
||||
$GOROOT/bin/go build -v -x -o $GOPATH/bin/$tool $_gourl/$tool
|
||||
done
|
||||
|
||||
# Distribution tools
|
||||
for tool in benchcmp bundle callgraph digraph eg fiximports guru html2article present ssadump stress stringer ; do
|
||||
$GOROOT/bin/go get -d golang.org/x/tools/cmd/$tool
|
||||
$GOROOT/bin/go build -v -x -o $GOPATH/pkg/tool/${GOOS}_$GOARCH/$tool golang.org/x/tools/cmd/$tool
|
||||
done
|
||||
cd $pkgname/src
|
||||
./make.bash --no-clean
|
||||
}
|
||||
|
||||
check() {
|
||||
cd "$pkgname-$pkgver"
|
||||
|
||||
export GOARCH=arm
|
||||
[ "$CARCH" == 'arm' ] && export GOARM=5
|
||||
[ "$CARCH" == 'armv6h' ] && export GOARM=6
|
||||
[ "$CARCH" == 'armv7h' ] && export GOARM=7
|
||||
[ "$CARCH" == 'aarch64' ] && export GOARCH=arm64
|
||||
|
||||
export GOROOT="$srcdir/$pkgname-$pkgver"
|
||||
export GOROOT="$srcdir/$pkgname"
|
||||
export GOBIN="$GOROOT/bin"
|
||||
export PATH="$srcdir/$pkgname-$pkgver/bin:$PATH"
|
||||
export GOROOT_BOOTSTRAP=/usr/lib/go
|
||||
export GO_TEST_TIMEOUT_SCALE=2
|
||||
|
||||
for tool in goimports gomvpkg gorename gotype \
|
||||
benchcmp bundle callgraph digraph eg fiximports guru html2article present ssadump stress stringer; do
|
||||
GOPATH="$srcdir" $GOROOT/bin/go test -v -x $_gourl/$tool
|
||||
done
|
||||
# The cgo_test and race tests fail via run.bash but not if run manually.
|
||||
# Assume that five "failed" messages are okay and just re-run failed tests.
|
||||
cd $pkgname/src
|
||||
./run.bash --no-rebuild -v -v -v -k |& tee run.log
|
||||
if (( $(grep -c Failed: run.log) > 5 )) && grep -q FAILED run.log; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# TestSimpleMulticastListener will fail in standard chroot
|
||||
cd src && bash run.bash --no-rebuild || true
|
||||
go tool dist test -v -v -v -run=^cgo_test$
|
||||
go tool dist test -v -v -v -run=^race$
|
||||
}
|
||||
|
||||
package_go() {
|
||||
pkgdesc='Compiler and tools for the Go programming language from Google'
|
||||
optdepends=('mercurial: for fetching sources from mercurial repositories'
|
||||
'git: for fetching sources from git repositories'
|
||||
'bzr: for fetching sources from bazaar repositories'
|
||||
'subversion: for fetching sources from subversion repositories'
|
||||
'go-tools: doc, goimports, gorename, and other tools.')
|
||||
cd "$pkgname-$pkgver"
|
||||
package() {
|
||||
cd $pkgbase
|
||||
|
||||
export GOROOT="$srcdir/$pkgname-$pkgver"
|
||||
export GOBIN="$GOROOT/bin"
|
||||
export GOROOT_BOOTSTRAP=/usr/lib/go
|
||||
install -d "$pkgdir/usr/bin" "$pkgdir/usr/lib/go" "$pkgdir/usr/share/doc/go"
|
||||
cp -a bin pkg src lib "$pkgdir/usr/lib/go"
|
||||
cp -r doc/* "$pkgdir/usr/share/doc/go"
|
||||
|
||||
ln -sf /usr/lib/go/bin/go "$pkgdir/usr/bin/go"
|
||||
ln -sf /usr/lib/go/bin/gofmt "$pkgdir/usr/bin/gofmt"
|
||||
ln -sf /usr/share/doc/go "$pkgdir/usr/lib/go/doc"
|
||||
|
||||
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/go/LICENSE"
|
||||
|
||||
mkdir -p "$pkgdir/usr/"{share/go,lib/go,lib/go/pkg,lib/go/src,lib/go/site/src}
|
||||
|
||||
cp -r doc misc -t "$pkgdir/usr/share/go"
|
||||
ln -s /usr/share/go/doc "$pkgdir/usr/lib/go/doc"
|
||||
cp -a bin "$pkgdir/usr"
|
||||
cp -a pkg/{include,linux_$GOARCH,tool} "$pkgdir/usr/lib/go/pkg"
|
||||
# The 'race' folder is not always generated for all architectures.
|
||||
[ -d "pkg/linux_${GOARCH}_race" ] && cp -a pkg/linux_${GOARCH}_race "$pkgdir/usr/lib/go/pkg"
|
||||
cp -a "$GOROOT/src" "$pkgdir/usr/lib/go/"
|
||||
cp -a "$GOROOT/lib" "$pkgdir/usr/lib/go/"
|
||||
|
||||
# This is to make `# go get golang.org/x/tour/gotour` and then running the
|
||||
# gotour executable work out of the box.
|
||||
ln -sf /usr/bin "$pkgdir/usr/lib/go/bin"
|
||||
|
||||
install -Dm644 VERSION "$pkgdir/usr/lib/go/VERSION"
|
||||
|
||||
# For godoc command
|
||||
install -Dm644 favicon.ico "$pkgdir/usr/lib/go/favicon.ico"
|
||||
|
||||
# Clean Windows specific files.
|
||||
rm -fv "$pkgdir"/usr/lib/go/src/*.bat
|
||||
rm -rf "$pkgdir/usr/lib/go/pkg/bootstrap"
|
||||
rm -rf "$pkgdir/usr/lib/go/pkg/tool/*/api"
|
||||
}
|
||||
|
||||
package_go-tools() {
|
||||
pkgdesc='Developer tools for the Go programming language (includes godoc)'
|
||||
depends=('go')
|
||||
|
||||
GOOS=linux
|
||||
|
||||
install -Dm644 "$srcdir/src/$_gourl/../LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
|
||||
# System-wide tools
|
||||
install -dm755 "$pkgdir/usr/bin"
|
||||
install -p -m755 "$srcdir/bin"/* "$pkgdir/usr/bin"
|
||||
|
||||
# Distribution tools
|
||||
install -dm755 "$pkgdir/usr/lib/go/pkg/tool/${GOOS}_$GOARCH"
|
||||
install -p -m755 "$srcdir/pkg/tool/${GOOS}_$GOARCH"/* "$pkgdir/usr/lib/go/pkg/tool/${GOOS}_$GOARCH"
|
||||
}
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
||||
|
|
Loading…
Reference in a new issue