65 lines
2.6 KiB
Nix
65 lines
2.6 KiB
Nix
# heavily inspired by https://github.com/diamondburned/gotk4-nix/blob/d2bd6577f1867cb740b281baa48a895aed494967/overlay.nix
|
|
self: super: let
|
|
patchelfer = arch: interpreter:
|
|
super.writeShellScriptBin
|
|
"${super.patchelf}/bin/patchelf --set-interpreter ${interpreter} \"$@\"";
|
|
in {
|
|
go = super.go.overrideAttrs (old: {
|
|
version = "1.18.2";
|
|
src = builtins.fetchurl {
|
|
url = "https://go.dev/dl/go1.18.2.src.tar.gz";
|
|
sha256 = "sha256:1qk7as7a5wx3522ldsq8il1il9ic5xhbl6drg89r4h63l8zd0i1c";
|
|
};
|
|
doCheck = false;
|
|
patches =
|
|
(old.patches or [])
|
|
++ [
|
|
# cmd/go/internal/work: concurrent ccompile routines
|
|
(super.fetchpatch {
|
|
url = "https://github.com/diamondburned/go/commit/ec3e1c9471f170187b6a7c83ab0364253f895c28.patch";
|
|
sha256 = "sha256-KXP3gHRVHCVY60HnrLHv+QLib1hSYZOxsMjkbAiNi1g=";
|
|
})
|
|
# cmd/cgo: concurrent file generation
|
|
(super.fetchpatch {
|
|
url = "https://github.com/diamondburned/go/commit/50e04befeca9ae63296a73c8d5d2870b904971b4.patch";
|
|
sha256 = "sha256-6PNUBlhGj53XS7f3dYOisDQ1PJldqwmWcgBnPE0cZsE=";
|
|
})
|
|
# the patches are also present locally for archival purposes
|
|
# ./patches/diamondburned/go/ec3e1c9471f170187b6a7c83ab0364253f895c28.patch
|
|
# ./patches/diamondburned/go/50e04befeca9ae63296a73c8d5d2870b904971b4.patch
|
|
# TODO(me): don't forget to download the patch files when bumping the
|
|
# urls above
|
|
];
|
|
});
|
|
|
|
# might as well be 'buildGoModule = super.buildGo118Module.override' but
|
|
# we're overriding just the go package itself and leaving the rest of the
|
|
# function alone. letting 'builGoModule' to be updated only with flake's
|
|
# nixpkgs updates therefore seems to be the more reasonable option.
|
|
buildGoModule = super.buildGoModule.override {
|
|
# use the go we just built from sources as 'go' in the buildGoModule func
|
|
inherit (self) go;
|
|
};
|
|
|
|
inherit (super) go-tools;
|
|
|
|
# See https://sourceware.org/glibc/wiki/ABIList.
|
|
patchelf-x86_64 = patchelfer "x86_64" "/lib64/ld-linux-x86-64.so.2";
|
|
patchelf-aarch64 = patchelfer "aarch64" "/lib/ld-linux-aarch64.so.1";
|
|
|
|
#dominikh = {
|
|
# go-tools = self.buildGoModule {
|
|
# name = "dominikh-go-tools";
|
|
# src = super.fetchFromGitHub {
|
|
# owner = "dominikh";
|
|
# repo = "go-tools";
|
|
# rev = "f4a2f64ce2386d1d392f2da44043c5ee3fb48216";
|
|
# sha256 = "1yhbz2sf332b6i00slsj4cn8r66x27kddw5vcjygkkiyny1a99qb";
|
|
# };
|
|
# vendorSha256 = "09jbarlbq47pcxy5zkja8gqvnqjp2mpbxnciv9lhilw9swqqwc0j";
|
|
# doCheck = false;
|
|
# subPackages = [ "cmd/staticcheck" ];
|
|
# };
|
|
#};
|
|
}
|