rec { overlays = [ (final: prev: { # rebase is a helper which takes all files/dirs under oldroot, and # creates a new derivation with those files/dirs copied under newroot # (where newroot is a relative path to the root of the derivation). rebase = name: oldroot: newroot: prev.stdenv.mkDerivation { name = name; inherit oldroot newroot; builder = builtins.toFile "builder.sh" '' source $stdenv/setup mkdir -p "$out"/"$newroot" cp -rL "$oldroot"/* "$out"/"$newroot" ''; }; # make buildGoModule default to static compilation buildGoModule = args: prev.buildGoModule ({ doCheck = false; CGO_ENABLED=0; tags = [ "netgo" "timetzdata" ]; ldflags = [ "-w" "-extldflags=-static" ]; } // args); }) (final: prev: { yq-go = prev.buildGoModule rec { pname = "yq-go"; version = "4.21.1"; src = prev.fetchFromGitHub { owner = "mikefarah"; repo = "yq"; rev = "v${version}"; sha256 = "sha256-283xe7FVHYSsRl4cZD7WDzIW1gqNAFsNrWYJkthZheU="; }; vendorSha256 = "sha256-F11FnDYJ59aKrdRXDPpKlhX52yQXdaN1sblSkVI2j9w="; }; nebula = prev.buildGoModule rec { pname = "nebula"; # If this changes, remember to change: # - the AppDir/etc/daemon.yml vpn.firewall docs # - the version imported in go-workspace version = "1.4.0"; src = prev.fetchFromGitHub { owner = "slackhq"; repo = pname; rev = "v${version}"; sha256 = "lu2/rSB9cFD7VUiK+niuqCX9CI2x+k4Pi+U5yksETSU="; }; vendorSha256 = "p1inJ9+NAb2d81cn+y+ofhxFz9ObUiLgj+9cACa6Jqg="; subPackages = [ "cmd/nebula" "cmd/nebula-cert" ]; }; }) ]; stableSrc = fetchTarball { name = "nixpkgs-22-05"; url = "https://github.com/NixOS/nixpkgs/archive/2aec372cdcd4d73b94863611fea70e0884270fdc.tar.gz"; sha256 = "1pbfhlh4v8l70p44gspsci3i6w0wk70vaisiawg3jhka2nxb8367"; }; stable = import stableSrc { inherit overlays; }; }