math-optim/overlay.nix

65 lines
2.6 KiB
Nix
Raw Permalink Normal View History

2022-06-14 16:46:11 +02:00
# 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" ];
# };
#};
}