go_1_24,buildGo124Module: remove

Signed-off-by: Paul Meyer <katexochen0@gmail.com>
This commit is contained in:
Paul Meyer
2026-02-23 08:58:49 +01:00
parent e137438e2c
commit 88452f2e1f
4 changed files with 0 additions and 261 deletions
-203
View File
@@ -1,203 +0,0 @@
{
lib,
stdenv,
fetchurl,
tzdata,
replaceVars,
iana-etc,
mailcap,
buildPackages,
pkgsBuildTarget,
targetPackages,
buildGo124Module,
callPackage,
}:
let
goBootstrap = buildPackages.callPackage ./bootstrap122.nix { };
# We need a target compiler which is still runnable at build time,
# to handle the cross-building case where build != host == target
targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
isCross = stdenv.buildPlatform != stdenv.targetPlatform;
in
stdenv.mkDerivation (finalAttrs: {
pname = "go";
version = "1.24.13";
src = fetchurl {
url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
hash = "sha256-Y5piBMJIaxN98etueO4+0Dj5h30OS1pGXnlqIVP4WNc=";
};
strictDeps = true;
buildInputs =
[ ]
++ lib.optionals stdenv.hostPlatform.isLinux [ stdenv.cc.libc.out ]
++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
depsBuildTarget = lib.optional isCross targetCC;
depsTargetTarget = lib.optional stdenv.targetPlatform.isMinGW targetPackages.threads.package;
postPatch = ''
patchShebangs .
'';
patches = [
(replaceVars ./iana-etc-1.17.patch {
iana = iana-etc;
})
# Patch the mimetype database location which is missing on NixOS.
# but also allow static binaries built with NixOS to run outside nix
(replaceVars ./mailcap-1.17.patch {
inherit mailcap;
})
# prepend the nix path to the zoneinfo files but also leave the original value for static binaries
# that run outside a nix server
(replaceVars ./tzdata-1.19.patch {
inherit tzdata;
})
./remove-tools-1.11.patch
./go_no_vendor_checks-1.23.patch
./go-env-go_ldso.patch
];
env = {
inherit (stdenv.targetPlatform.go) GOOS GOARCH GOARM;
# GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
# Go will nevertheless build a for host system that we will copy over in
# the install phase.
GOHOSTOS = stdenv.buildPlatform.go.GOOS;
GOHOSTARCH = stdenv.buildPlatform.go.GOARCH;
GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
# Wasi does not support CGO
# ppc64/linux CGO is incomplete/borked, and will likely not receive any further improvements
# https://github.com/golang/go/issues/8912
# https://github.com/golang/go/issues/13192
CGO_ENABLED =
if
(
stdenv.targetPlatform.isWasi
|| (stdenv.targetPlatform.isPower64 && stdenv.targetPlatform.isBigEndian)
)
then
0
else
1;
GOROOT_BOOTSTRAP = "${goBootstrap}/share/go";
}
// lib.optionalAttrs isCross {
# {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 = "${targetCC}/bin/${targetCC.targetPrefix}cc";
CXX_FOR_TARGET = "${targetCC}/bin/${targetCC.targetPrefix}c++";
};
buildPhase = ''
runHook preBuild
export GOCACHE=$TMPDIR/go-cache
if [ -f "$NIX_CC/nix-support/dynamic-linker" ]; then
export GO_LDSO=$(cat $NIX_CC/nix-support/dynamic-linker)
fi
export PATH=$(pwd)/bin:$PATH
${lib.optionalString isCross ''
# 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
# Prefer external linker for cross when CGO is supported, since
# we haven't taught go's internal linker to pick the correct ELF
# interpreter for cross
# When CGO is not supported we rely on static binaries being built
# since they don't need an ELF interpreter
export GO_EXTLINK_ENABLED=${toString finalAttrs.env.CGO_ENABLED}
''}
ulimit -a
pushd src
./make.bash
popd
runHook postBuild
'';
preInstall = ''
# Contains the wrong perl shebang when cross compiling,
# since it is not used for anything we can deleted as well.
rm src/regexp/syntax/make_perl_groups.pl
''
+ (
if (stdenv.buildPlatform.system != stdenv.hostPlatform.system) then
''
mv bin/*_*/* bin
rmdir bin/*_*
${lib.optionalString
(
!(
finalAttrs.env.GOHOSTARCH == finalAttrs.env.GOARCH && finalAttrs.env.GOOS == finalAttrs.env.GOHOSTOS
)
)
''
rm -rf pkg/${finalAttrs.env.GOHOSTOS}_${finalAttrs.env.GOHOSTARCH} pkg/tool/${finalAttrs.env.GOHOSTOS}_${finalAttrs.env.GOHOSTARCH}
''
}
''
else
lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) ''
rm -rf bin/*_*
${lib.optionalString
(
!(
finalAttrs.env.GOHOSTARCH == finalAttrs.env.GOARCH && finalAttrs.env.GOOS == finalAttrs.env.GOHOSTOS
)
)
''
rm -rf pkg/${finalAttrs.env.GOOS}_${finalAttrs.env.GOARCH} pkg/tool/${finalAttrs.env.GOOS}_${finalAttrs.env.GOARCH}
''
}
''
);
installPhase = ''
runHook preInstall
mkdir -p $out/share/go
cp -a bin pkg src lib misc api doc go.env VERSION $out/share/go
mkdir -p $out/bin
ln -s $out/share/go/bin/* $out/bin
runHook postInstall
'';
disallowedReferences = [ goBootstrap ];
passthru = {
inherit goBootstrap;
tests = callPackage ./tests.nix {
go = finalAttrs.finalPackage;
buildGoModule = buildGo124Module;
};
};
__structuredAttrs = true;
meta = {
changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor finalAttrs.version}";
description = "Go Programming language";
homepage = "https://go.dev/";
license = lib.licenses.bsd3;
teams = [ lib.teams.golang ];
platforms =
lib.platforms.darwin ++ lib.platforms.linux ++ lib.platforms.wasi ++ lib.platforms.freebsd;
badPlatforms = [
# Support for big-endian POWER < 8 was dropped in 1.9, but POWER8 users have less of a reason to run in big-endian mode than pre-POWER8 ones
# So non-LE ppc64 is effectively unsupported, and Go SIGILLs on affordable ppc64 hardware
# https://github.com/golang/go/issues/19074 - Dropped support for big-endian POWER < 8, with community pushback
# https://github.com/golang/go/issues/73349 - upstream will not accept submissions to fix this
"powerpc64-linux"
];
mainProgram = "go";
};
})
@@ -1,27 +0,0 @@
{ callPackage }:
callPackage ./binary.nix {
version = "1.21.0";
hashes = {
# Use `print-hashes.sh ${version}` to generate the list below
darwin-amd64 = "b314de9f704ab122c077d2ec8e67e3670affe8865479d1f01991e7ac55d65e70";
darwin-arm64 = "3aca44de55c5e098de2f406e98aba328898b05d509a2e2a356416faacf2c4566";
freebsd-386 = "312a0065714a50862af714e7a5b3fbbd70fe68f905ffb9bcc56d42eadf6bffab";
freebsd-amd64 = "b8eaa36654625df799654f77f4af0ea7bd9e5e760ebe86e68fe7c484748ae995";
freebsd-arm64 = "bca5be1a9934fc522cb1a2e4849bb9f12ee6b480b48949e36a4dfb8e755a4b25";
freebsd-armv6l = "f4c9c91fa9c37d6d6b7644f3f6b67167b2a44bd48c0cba1d2a5ff5fd50ceb364";
freebsd-riscv64 = "45b99a9884dcd0dd4c8e4c0f99a4dc2901b8e9628dd8091ae5c0620afd536f0a";
linux-386 = "0e6f378d9b072fab0a3d9ff4d5e990d98487d47252dba8160015a61e6bd0bcba";
linux-amd64 = "d0398903a16ba2232b389fb31032ddf57cac34efda306a0eebac34f0965a0742";
linux-arm64 = "f3d4548edf9b22f26bbd49720350bbfe59d75b7090a1a2bff1afad8214febaf3";
linux-armv6l = "e377a0004957c8c560a3ff99601bce612330a3d95ba3b0a2ae144165fc87deb1";
linux-loong64 = "e484cdc55221f7e7853666ed4f0ef462eef46b52253f84df60a7b908416060cb";
linux-mips = "6311d8ccd6ff9ce3cc8ecc72017d651d23e7325943fa72f4b65cd750be8aacd8";
linux-mips64 = "6d9cb425dc61f60bff41e2dec873abbcc5b8dbd1d32997f994d707b662f3c363";
linux-mips64le = "92f7933d997c589b4f506c6b3cc5b27ff43b294c3a2d40bf4d7eeaf375f92afb";
linux-mipsle = "9bb9f938457411042074a57284d40a086e63f7778f86e1632e018bbc38948c92";
linux-ppc64 = "e34dcc1df804bf8bac035ace3304f23696a9138a79a398dce981d89072d3ae23";
linux-ppc64le = "e938ffc81d8ebe5efc179240960ba22da6a841ff05d5cab7ce2547112b14a47f";
linux-riscv64 = "87b21c06573617842ca9e00b954bc9f534066736a0778eae594ac54b45a9e8b7";
linux-s390x = "be7338df8e5d5472dfa307b0df2b446d85d001b0a2a3cdb1a14048d751b70481";
};
}
@@ -1,26 +0,0 @@
diff --git a/src/net/lookup_unix.go b/src/net/lookup_unix.go
index 8030e3d99e..5a7472d933 100644
--- a/src/net/lookup_unix.go
+++ b/src/net/lookup_unix.go
@@ -21,7 +21,7 @@ var onceReadProtocols sync.Once
// readProtocols loads contents of /etc/protocols into protocols map
// for quick access.
func readProtocols() {
- file, err := open("/etc/protocols")
+ file, err := open("@iana@/etc/protocols")
if err != nil {
return
}
diff --git a/src/net/port_unix.go b/src/net/port_unix.go
index a9a96a2323..0df6efe9e5 100644
--- a/src/net/port_unix.go
+++ b/src/net/port_unix.go
@@ -17,7 +17,7 @@ import (
var onceReadServices sync.Once
func readServices() {
- file, err := open("/etc/services")
+ file, err := open("@iana@/etc/services")
if err != nil {
return
}
-5
View File
@@ -7799,11 +7799,6 @@ with pkgs;
go_latest = go_1_26;
buildGoLatestModule = buildGo126Module;
go_1_24 = callPackage ../development/compilers/go/1.24.nix { };
buildGo124Module = callPackage ../build-support/go/module.nix {
go = buildPackages.go_1_24;
};
go_1_25 = callPackage ../development/compilers/go/1.25.nix { };
buildGo125Module = callPackage ../build-support/go/module.nix {
go = buildPackages.go_1_25;