forked from mirrors/nixpkgs
go1.5: Fix pcre and port the remove-tools patch
This commit is contained in:
parent
15a7e0ab71
commit
d730646832
|
@ -1,11 +1,9 @@
|
|||
{ stdenv, lib, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc, perl
|
||||
, go_1_4, runCommand, which, patch
|
||||
{ stdenv, lib, fetchurl, tzdata, iana_etc, go_1_4, runCommand
|
||||
, perl, which, pkgconfig, patch
|
||||
, pcre
|
||||
, Security }:
|
||||
|
||||
let
|
||||
loader386 = "${glibc}/lib/ld-linux.so.2";
|
||||
loaderAmd64 = "${glibc}/lib/ld-linux-x86-64.so.2";
|
||||
loaderArm = "${glibc}/lib/ld-linux.so.3";
|
||||
goBootstrap = runCommand "go-bootstrap" {} ''
|
||||
mkdir $out
|
||||
cp -rf ${go_1_4}/* $out/
|
||||
|
@ -25,9 +23,8 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
# perl is used for testing go vet
|
||||
buildInputs = [ bison bash makeWrapper perl which patch ]
|
||||
++ lib.optionals stdenv.isLinux [ glibc ];
|
||||
|
||||
nativeBuildInputs = [ perl which pkgconfig patch ];
|
||||
buildInputs = [ pcre ];
|
||||
propagatedBuildInputs = lib.optional stdenv.isDarwin Security;
|
||||
|
||||
# I'm not sure what go wants from its 'src', but the go installation manual
|
||||
|
@ -59,9 +56,14 @@ stdenv.mkDerivation rec {
|
|||
sed -i '/TestShutdownUnix/areturn' src/net/net_test.go
|
||||
# Disable the hostname test
|
||||
sed -i '/TestHostname/areturn' src/os/os_test.go
|
||||
sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/net/lookup_unix.go
|
||||
# ParseInLocation fails the test
|
||||
sed -i '/TestParseInSydney/areturn' src/time/format_test.go
|
||||
# Remove the api check as it never worked
|
||||
sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
|
||||
# Remove the coverage test as we have removed this utility
|
||||
sed -i '/TestCoverageWithCgo/areturn' src/cmd/go/go_test.go
|
||||
|
||||
sed -i 's,/etc/protocols,${iana_etc}/etc/protocols,' src/net/lookup_unix.go
|
||||
'' + lib.optionalString stdenv.isLinux ''
|
||||
sed -i 's,/usr/share/zoneinfo/,${tzdata}/share/zoneinfo/,' src/time/zoneinfo_unix.go
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
|
@ -73,9 +75,9 @@ stdenv.mkDerivation rec {
|
|||
touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
|
||||
'';
|
||||
|
||||
# TODO: port tools patch
|
||||
patches = [
|
||||
./cacert-1.5.patch
|
||||
./remove-tools-1.5.patch
|
||||
];
|
||||
|
||||
GOOS = if stdenv.isDarwin then "darwin" else "linux";
|
||||
|
|
60
pkgs/development/compilers/go/remove-tools-1.5.patch
Normal file
60
pkgs/development/compilers/go/remove-tools-1.5.patch
Normal file
|
@ -0,0 +1,60 @@
|
|||
diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go
|
||||
index 61e3d8d..f8475f4 100644
|
||||
--- a/src/cmd/go/pkg.go
|
||||
+++ b/src/cmd/go/pkg.go
|
||||
@@ -665,7 +665,7 @@ var goTools = map[string]targetDir{
|
||||
"cmd/asm": toTool,
|
||||
"cmd/compile": toTool,
|
||||
"cmd/cgo": toTool,
|
||||
- "cmd/cover": toTool,
|
||||
+ "nixos.org/x/tools/cmd/cover": toTool,
|
||||
"cmd/dist": toTool,
|
||||
"cmd/doc": toTool,
|
||||
"cmd/fix": toTool,
|
||||
@@ -676,9 +676,9 @@ var goTools = map[string]targetDir{
|
||||
"cmd/pack": toTool,
|
||||
"cmd/pprof": toTool,
|
||||
"cmd/trace": toTool,
|
||||
- "cmd/vet": toTool,
|
||||
+ "nixos.org/x/tools/cmd/vet": toTool,
|
||||
"cmd/yacc": toTool,
|
||||
- "golang.org/x/tools/cmd/godoc": toBin,
|
||||
+ "nixos.org/x/tools/cmd/godoc": toBin,
|
||||
"code.google.com/p/go.tools/cmd/cover": stalePath,
|
||||
"code.google.com/p/go.tools/cmd/godoc": stalePath,
|
||||
"code.google.com/p/go.tools/cmd/vet": stalePath,
|
||||
diff --git a/src/go/build/build.go b/src/go/build/build.go
|
||||
index 496fe11..8c81dbd 100644
|
||||
--- a/src/go/build/build.go
|
||||
+++ b/src/go/build/build.go
|
||||
@@ -1388,7 +1388,7 @@ func init() {
|
||||
}
|
||||
|
||||
// ToolDir is the directory containing build tools.
|
||||
-var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
|
||||
+var ToolDir = runtime.GOTOOLDIR()
|
||||
|
||||
// IsLocalImport reports whether the import path is
|
||||
// a local import path, like ".", "..", "./foo", or "../foo".
|
||||
diff --git a/src/runtime/extern.go b/src/runtime/extern.go
|
||||
index d346362..fb22b6e 100644
|
||||
--- a/src/runtime/extern.go
|
||||
+++ b/src/runtime/extern.go
|
||||
@@ -194,6 +194,17 @@ func GOROOT() string {
|
||||
return defaultGoroot
|
||||
}
|
||||
|
||||
+// GOTOOLDIR returns the root of the Go tree.
|
||||
+// It uses the GOTOOLDIR environment variable, if set,
|
||||
+// or else the root used during the Go build.
|
||||
+func GOTOOLDIR() string {
|
||||
+ s := gogetenv("GOTOOLDIR")
|
||||
+ if s != "" {
|
||||
+ return s
|
||||
+ }
|
||||
+ return GOROOT() + "/pkg/tool/" + GOOS + "_" + GOARCH
|
||||
+}
|
||||
+
|
||||
// Version returns the Go tree's version string.
|
||||
// It is either the commit hash and date at the time of the build or,
|
||||
// when possible, a release tag like "go1.3".
|
Loading…
Reference in a new issue