59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
|
{ nixpkgs, ... }: final: prev:
|
||
|
let
|
||
|
inherit (final) lib callPackage;
|
||
|
inherit (lib) concatStringsSep remove splitString subtractLists toList;
|
||
|
|
||
|
pkgs = import nixpkgs {
|
||
|
localSystem = final.buildPlatform;
|
||
|
crossSystem = final.hostPlatform;
|
||
|
config = removeAttrs final.config [
|
||
|
"replaceStdenv"
|
||
|
"replaceCrossStdenv"
|
||
|
];
|
||
|
};
|
||
|
|
||
|
idiosyn = import ./stdenv.nix pkgs;
|
||
|
|
||
|
removeFlag = flag: flags:
|
||
|
concatStringsSep " " (remove flag (splitString " " flags));
|
||
|
|
||
|
gentoo-patches = final.fetchgit {
|
||
|
url = "https://anongit.gentoo.org/git/repo/gentoo.git";
|
||
|
rev = "fa77d52a7ff39464c50707ca024725deab08b534";
|
||
|
sparseCheckout = [ "*.patch" ];
|
||
|
nonConeMode = true;
|
||
|
hash = "sha256-ZTrPeo8TjKSDAUyeJyWq1C8O9EXd9uhClHlphPsFXCA=";
|
||
|
};
|
||
|
in {
|
||
|
inherit idiosyn;
|
||
|
|
||
|
buildPackages = prev.buildPackages // {
|
||
|
stdenv = final.stdenv;
|
||
|
};
|
||
|
|
||
|
glibc = prev.glibc.overrideAttrs (base: {
|
||
|
env.NIX_CFLAGS_COMPILE =
|
||
|
removeFlag "-flto=thin" base.env.NIX_CFLAGS_COMPILE;
|
||
|
});
|
||
|
|
||
|
keyutils = prev.keyutils.overrideAttrs (base: {
|
||
|
LDFLAGS = toList base.LDFLAGS or [ ]
|
||
|
++ [ "-Wl,--undefined-version" ];
|
||
|
});
|
||
|
|
||
|
busybox = prev.busybox.override {
|
||
|
stdenv = final.gccStdenv;
|
||
|
};
|
||
|
|
||
|
libgcrypt = prev.libgcrypt.overrideAttrs (base: {
|
||
|
configureFlags = base.configureFlags or [ ]
|
||
|
++ [ "--disable-jent-support" ];
|
||
|
});
|
||
|
|
||
|
time = prev.time.overrideAttrs (base: {
|
||
|
patches = base.patches or [ ]
|
||
|
++ [ "${gentoo-patches}/sys-process/time/files/time-1.9-implicit-func-decl-clang.patch" ];
|
||
|
});
|
||
|
}
|
||
|
|