diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/go/1.14.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/go/1.14.nix | 57 |
1 files changed, 34 insertions, 23 deletions
diff --git a/nixpkgs/pkgs/development/compilers/go/1.14.nix b/nixpkgs/pkgs/development/compilers/go/1.14.nix index 92c1cbdfc18b..e8a90ac0b8df 100644 --- a/nixpkgs/pkgs/development/compilers/go/1.14.nix +++ b/nixpkgs/pkgs/development/compilers/go/1.14.nix @@ -1,6 +1,20 @@ -{ lib, stdenv, fetchurl, tzdata, iana-etc, runCommand -, perl, which, pkg-config, patch, procps, pcre, cacert, Security, Foundation -, mailcap, runtimeShell +{ lib +, stdenv +, fetchurl +, tzdata +, iana-etc +, runCommand +, perl +, which +, pkg-config +, patch +, procps +, pcre +, cacert +, Security +, Foundation +, mailcap +, runtimeShell , buildPackages , pkgsBuildTarget , fetchpatch @@ -8,14 +22,9 @@ }: let - - inherit (lib) optionals optionalString; - - version = "1.14.15"; - go_bootstrap = buildPackages.callPackage ./bootstrap.nix { }; - goBootstrap = runCommand "go-bootstrap" {} '' + goBootstrap = runCommand "go-bootstrap" { } '' mkdir $out cp -rf ${go_bootstrap}/* $out/ chmod -R u+w $out @@ -41,7 +50,7 @@ in stdenv.mkDerivation rec { pname = "go"; - inherit version; + version = "1.14.15"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; @@ -51,10 +60,10 @@ stdenv.mkDerivation rec { # perl is used for testing go vet nativeBuildInputs = [ perl which pkg-config patch procps ]; buildInputs = [ cacert pcre ] - ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ] - ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; + ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ] + ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ]; - depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ]; + depsTargetTargetPropagated = lib.optionals stdenv.isDarwin [ Security Foundation ]; hardeningDisable = [ "all" ]; @@ -106,14 +115,14 @@ stdenv.mkDerivation rec { # Disable cgo lookup tests not works, they depend on resolver rm src/net/cgo_unix_test.go - '' + optionalString stdenv.isLinux '' + '' + lib.optionalString stdenv.isLinux '' # prepend the nix path to the zoneinfo files but also leave the original value for static binaries # that run outside a nix server sed -i 's,\"/usr/share/zoneinfo/,"${tzdata}/share/zoneinfo/\"\,\n\t&,' src/time/zoneinfo_unix.go - '' + optionalString stdenv.isAarch32 '' + '' + lib.optionalString stdenv.isAarch32 '' echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash - '' + optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.isDarwin '' substituteInPlace src/race.bash --replace \ "sysctl machdep.cpu.extfeatures | grep -qv EM64T" true sed -i 's,strings.Contains(.*sysctl.*,true {,' src/cmd/dist/util.go @@ -183,16 +192,18 @@ stdenv.mkDerivation rec { # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those # to be different from CC/CXX - CC_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CC_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}cc" else null; - CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then + CXX_FOR_TARGET = + if (stdenv.buildPlatform != stdenv.targetPlatform) then "${targetCC}/bin/${targetCC.targetPrefix}c++" else null; - GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]); + GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]); GO386 = 387; # from Arch: don't assume sse2 on i686 CGO_ENABLED = 1; # Hopefully avoids test timeouts on Hydra @@ -202,7 +213,7 @@ stdenv.mkDerivation rec { # Some tests assume things like home directories and users exists GO_BUILDER_NAME = "nix"; - GOROOT_BOOTSTRAP="${goBootstrap}/share/go"; + GOROOT_BOOTSTRAP = "${goBootstrap}/share/go"; postConfigure = '' export GOCACHE=$TMPDIR/go-cache @@ -211,7 +222,7 @@ stdenv.mkDerivation rec { export PATH=$(pwd)/bin:$PATH - ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' + ${lib.optionalString (stdenv.buildPlatform != stdenv.targetPlatform) '' # Independent from host/target, CC should produce code for the building system. # We only set it when cross-compiling. export CC=${buildPackages.stdenv.cc}/bin/cc @@ -239,12 +250,12 @@ stdenv.mkDerivation rec { '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then '' mv bin/*_*/* bin rmdir bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOHOSTOS}_${GOHOSTARCH} pkg/tool/${GOHOSTOS}_${GOHOSTARCH} ''} '' else if (stdenv.hostPlatform != stdenv.targetPlatform) then '' rm -rf bin/*_* - ${optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' + ${lib.optionalString (!(GOHOSTARCH == GOARCH && GOOS == GOHOSTOS)) '' rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH} ''} '' else ""); |