mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-15 02:36:16 +02:00
e084316130
This helper makes it easy to use filesets that include files from parent directories, which we'll need more of in https://github.com/NixOS/nix/pull/10973
87 lines
2.2 KiB
Nix
87 lines
2.2 KiB
Nix
# These overrides are applied to the dependencies of the Nix components.
|
|
|
|
{
|
|
# Flake inputs; used for sources
|
|
inputs,
|
|
|
|
# The raw Nixpkgs, not affected by this scope
|
|
pkgs,
|
|
|
|
stdenv,
|
|
versionSuffix,
|
|
}:
|
|
let
|
|
inherit (pkgs) lib;
|
|
|
|
localSourceLayer = finalAttrs: prevAttrs:
|
|
let
|
|
root = ../.;
|
|
workDirPath =
|
|
# Ideally we'd pick finalAttrs.workDir, but for now `mkDerivation` has
|
|
# the requirement that everything except passthru and meta must be
|
|
# serialized by mkDerivation, which doesn't work for this.
|
|
prevAttrs.workDir;
|
|
|
|
workDirSubpath = lib.path.removePrefix root workDirPath;
|
|
sources = assert prevAttrs.fileset._type == "fileset"; prevAttrs.fileset;
|
|
src = lib.fileset.toSource { fileset = sources; inherit root; };
|
|
|
|
in
|
|
{
|
|
sourceRoot = "${src.name}/" + workDirSubpath;
|
|
inherit src;
|
|
|
|
# Clear what `derivation` can't/shouldn't serialize; see prevAttrs.workDir.
|
|
fileset = null;
|
|
workDir = null;
|
|
};
|
|
|
|
in
|
|
scope: {
|
|
inherit stdenv versionSuffix;
|
|
|
|
libseccomp = pkgs.libseccomp.overrideAttrs (_: rec {
|
|
version = "2.5.5";
|
|
src = pkgs.fetchurl {
|
|
url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz";
|
|
hash = "sha256-JIosik2bmFiqa69ScSw0r+/PnJ6Ut23OAsHJqiX7M3U=";
|
|
};
|
|
});
|
|
|
|
boehmgc = pkgs.boehmgc.override {
|
|
enableLargeConfig = true;
|
|
};
|
|
|
|
libgit2 = pkgs.libgit2.overrideAttrs (attrs: {
|
|
src = inputs.libgit2;
|
|
version = inputs.libgit2.lastModifiedDate;
|
|
cmakeFlags = attrs.cmakeFlags or []
|
|
++ [ "-DUSE_SSH=exec" ];
|
|
});
|
|
|
|
busybox-sandbox-shell = pkgs.busybox-sandbox-shell or (pkgs.busybox.override {
|
|
useMusl = true;
|
|
enableStatic = true;
|
|
enableMinimal = true;
|
|
extraConfig = ''
|
|
CONFIG_FEATURE_FANCY_ECHO y
|
|
CONFIG_FEATURE_SH_MATH y
|
|
CONFIG_FEATURE_SH_MATH_64 y
|
|
|
|
CONFIG_ASH y
|
|
CONFIG_ASH_OPTIMIZE_FOR_SIZE y
|
|
|
|
CONFIG_ASH_ALIAS y
|
|
CONFIG_ASH_BASH_COMPAT y
|
|
CONFIG_ASH_CMDCMD y
|
|
CONFIG_ASH_ECHO y
|
|
CONFIG_ASH_GETOPTS y
|
|
CONFIG_ASH_INTERNAL_GLOB y
|
|
CONFIG_ASH_JOB_CONTROL y
|
|
CONFIG_ASH_PRINTF y
|
|
CONFIG_ASH_TEST y
|
|
'';
|
|
});
|
|
|
|
mkMesonDerivation = f: stdenv.mkDerivation (lib.extends localSourceLayer f);
|
|
}
|