All checks were successful
Check meta / check_meta (pull_request) Successful in 15s
Check meta / check_dns (pull_request) Successful in 15s
Run pre-commit on all files / pre-commit (pull_request) Successful in 29s
Check workflows / check_workflows (pull_request) Successful in 17s
Build all the nodes / ap01 (pull_request) Successful in 36s
Build all the nodes / bridge01 (pull_request) Successful in 1m6s
Build all the nodes / build01 (pull_request) Successful in 1m9s
Build all the nodes / cof02 (pull_request) Successful in 1m5s
Build all the nodes / geo01 (pull_request) Successful in 56s
Build all the nodes / compute01 (pull_request) Successful in 1m27s
Build all the nodes / geo02 (pull_request) Successful in 1m2s
Build all the nodes / hypervisor01 (pull_request) Successful in 56s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m0s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m0s
Build all the nodes / iso (pull_request) Successful in 1m5s
Build all the nodes / lab-router01 (pull_request) Successful in 58s
Build all the nodes / netaccess01 (pull_request) Successful in 22s
Build all the nodes / netcore00 (pull_request) Successful in 22s
Build all the nodes / netcore01 (pull_request) Successful in 22s
Build all the nodes / krz01 (pull_request) Successful in 1m42s
Build all the nodes / netcore02 (pull_request) Successful in 22s
Build all the nodes / rescue01 (pull_request) Successful in 1m13s
Build all the nodes / tower01 (pull_request) Successful in 56s
Build all the nodes / storage01 (pull_request) Successful in 2m2s
Build all the nodes / vault01 (pull_request) Successful in 1m8s
Build all the nodes / web01 (pull_request) Successful in 1m23s
Build the shell / build-shell (pull_request) Successful in 24s
Build all the nodes / web02 (pull_request) Successful in 1m0s
Build all the nodes / web03 (pull_request) Successful in 1m3s
Build all the nodes / ap01 (push) Successful in 37s
Build all the nodes / bridge01 (push) Successful in 59s
Build all the nodes / geo01 (push) Successful in 1m1s
Build all the nodes / cof02 (push) Successful in 1m8s
Build all the nodes / build01 (push) Successful in 1m9s
Build all the nodes / compute01 (push) Successful in 1m30s
Build all the nodes / geo02 (push) Successful in 57s
Build all the nodes / hypervisor01 (push) Successful in 59s
Build all the nodes / hypervisor02 (push) Successful in 58s
Build all the nodes / hypervisor03 (push) Successful in 58s
Build all the nodes / iso (push) Successful in 1m9s
Build all the nodes / netaccess01 (push) Successful in 22s
Build all the nodes / netcore00 (push) Successful in 22s
Build all the nodes / netcore01 (push) Successful in 22s
Build all the nodes / lab-router01 (push) Successful in 58s
Build all the nodes / netcore02 (push) Successful in 22s
Build all the nodes / krz01 (push) Successful in 1m46s
Build all the nodes / tower01 (push) Successful in 57s
Build all the nodes / rescue01 (push) Successful in 1m21s
Build all the nodes / vault01 (push) Successful in 1m7s
Build all the nodes / web01 (push) Successful in 1m21s
Build the shell / build-shell (push) Successful in 22s
Build all the nodes / storage01 (push) Successful in 1m56s
Build all the nodes / web02 (push) Successful in 1m3s
Build all the nodes / web03 (push) Successful in 1m4s
Run pre-commit on all files / pre-commit (push) Successful in 30s
85 lines
2.1 KiB
Nix
85 lines
2.1 KiB
Nix
# Copyright Tom Hubrecht, (2023-2024)
|
|
# SPDX-FileCopyrightText: 2024 Tom Hubrecht <tom.hubrecht@dgnum.eu>
|
|
#
|
|
# SPDX-License-Identifier: EUPL-1.2
|
|
|
|
{
|
|
patchFile,
|
|
excludeGitHubManual ? true,
|
|
fetchers ? { },
|
|
}:
|
|
|
|
rec {
|
|
base =
|
|
{ pkgs }:
|
|
rec {
|
|
mkUrlPatch =
|
|
{
|
|
hash ? null,
|
|
...
|
|
}@attrs:
|
|
pkgs.fetchpatch (
|
|
{
|
|
hash = if hash == null then pkgs.lib.fakeHash else hash;
|
|
}
|
|
// (builtins.removeAttrs attrs [ "hash" ])
|
|
// (pkgs.lib.optionalAttrs (excludeGitHubManual && !(builtins.hasAttr "includes" attrs)) {
|
|
excludes = (attrs.excludes or [ ]) ++ [ "nixos/doc/manual/*" ];
|
|
})
|
|
);
|
|
|
|
mkGitHubPatch =
|
|
{ id, ... }@attrs:
|
|
mkUrlPatch (
|
|
(builtins.removeAttrs attrs [ "id" ])
|
|
// {
|
|
url = "https://github.com/NixOS/nixpkgs/pull/${builtins.toString id}.diff";
|
|
}
|
|
);
|
|
|
|
mkCommitPatch =
|
|
{ sha, ... }@attrs:
|
|
mkUrlPatch (
|
|
(builtins.removeAttrs attrs [ "sha" ])
|
|
// {
|
|
url = "https://github.com/NixOS/nixpkgs/commit/${builtins.toString sha}.diff";
|
|
}
|
|
);
|
|
|
|
patchFunctions = {
|
|
commit = mkCommitPatch;
|
|
github = mkGitHubPatch;
|
|
remote = pkgs.fetchpatch;
|
|
static = attrs: attrs.path;
|
|
url = mkUrlPatch;
|
|
} // fetchers;
|
|
|
|
mkPatch =
|
|
{
|
|
_type ? "github",
|
|
...
|
|
}@attrs:
|
|
if builtins.hasAttr _type patchFunctions then
|
|
patchFunctions.${_type} (builtins.removeAttrs attrs [ "_type" ])
|
|
else
|
|
throw "Unknown patch type: ${builtins.toString _type}.";
|
|
|
|
mkPatches = v: builtins.map mkPatch ((import patchFile).${v} or [ ]);
|
|
|
|
applyPatches =
|
|
{
|
|
src,
|
|
name,
|
|
patches ? mkPatches name,
|
|
}:
|
|
pkgs.applyPatches {
|
|
inherit patches src;
|
|
|
|
name = "${name}-patched";
|
|
};
|
|
|
|
applyPatches' = name: src: applyPatches { inherit name src; };
|
|
};
|
|
|
|
mkNixpkgsSrc = { src, name }: (base { pkgs = import src { }; }).applyPatches { inherit src name; };
|
|
}
|