From 88452f2e1f75f2c3bfb2af1768ca1c771093d1af Mon Sep 17 00:00:00 2001 From: Paul Meyer Date: Fri, 13 Feb 2026 16:37:27 +0100 Subject: [PATCH] go_1_24,buildGo124Module: remove Signed-off-by: Paul Meyer --- pkgs/development/compilers/go/1.24.nix | 203 ------------------ .../development/compilers/go/bootstrap121.nix | 27 --- .../compilers/go/iana-etc-1.17.patch | 26 --- pkgs/top-level/all-packages.nix | 5 - 4 files changed, 261 deletions(-) delete mode 100644 pkgs/development/compilers/go/1.24.nix delete mode 100644 pkgs/development/compilers/go/bootstrap121.nix delete mode 100644 pkgs/development/compilers/go/iana-etc-1.17.patch diff --git a/pkgs/development/compilers/go/1.24.nix b/pkgs/development/compilers/go/1.24.nix deleted file mode 100644 index 314a0e58a89b..000000000000 --- a/pkgs/development/compilers/go/1.24.nix +++ /dev/null @@ -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"; - }; -}) diff --git a/pkgs/development/compilers/go/bootstrap121.nix b/pkgs/development/compilers/go/bootstrap121.nix deleted file mode 100644 index d9b4fa9a14f8..000000000000 --- a/pkgs/development/compilers/go/bootstrap121.nix +++ /dev/null @@ -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"; - }; -} diff --git a/pkgs/development/compilers/go/iana-etc-1.17.patch b/pkgs/development/compilers/go/iana-etc-1.17.patch deleted file mode 100644 index 6f1382758989..000000000000 --- a/pkgs/development/compilers/go/iana-etc-1.17.patch +++ /dev/null @@ -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 - } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 74d81917b9cf..6e7969c6841d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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;